framework 导包
packge:System.Net.Http
net core 不需要
/// <summary>
/// 参数是字符串,一个参数
/// Put(int id)
/// </summary>
/// <returns></returns>
public static string put()
{
HttpClient httpClient = new HttpClient()
{
BaseAddress = new Uri("https://localhost:5001"),
};
var result = httpClient.PutAsync("api/values/90", null).Result.Content.ReadAsStringAsync().Result;
return result;
}
/// <summary>
/// 参数是字符串,一个参数,和模型绑定
/// Put(int id,LoginViewModel model)
/// </summary>
/// <returns></returns>
public static string put2()
{
var id = 90;
HttpClient httpClient = new HttpClient()
{
BaseAddress = new Uri("https://localhost:5001")
};
httpClient.DefaultRequestHeaders.Add("KeepAlive", "false");
var model = new
{
userName = "name",
passWord = "pwd"
};
var requestJson = JsonConvert.SerializeObject(model);
HttpContent httpcontent = new StringContent(requestJson, Encoding.UTF8, "application/json");
//httpcontent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
//var abc = httpClient.PutAsync("https://localhost:5001/api/values/5", null);
var result = httpClient.PutAsync("api/values/90", httpcontent).Result.Content.ReadAsStringAsync().Result;
return result;
}
/// <summary>
/// 参数是字符串,一个参数,和模型绑定
/// Put(int id, [FromBody] string value)
/// </summary>
/// <returns></returns>
public static string put3()
{
HttpClient httpClient = new HttpClient()
{
BaseAddress = new Uri("https://localhost:5001")
};
httpClient.DefaultRequestHeaders.Add("KeepAlive", "false");
//就算不是实体,也传序列化后的值
var requestJson = JsonConvert.SerializeObject("你好");
//如果直接new StringContent("中文", Encoding.UTF8, "application/json"); 会异常
//因为是FromBody修饰的,要json下
HttpContent httpcontent = new StringContent(requestJson, Encoding.UTF8, "application/json");
//httpcontent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
//var abc = httpClient.PutAsync("https://localhost:5001/api/values/5", null);
//var result = httpClient.PutAsync("api/values/90", httpcontent).Result.Content.ReadAsStringAsync().Result;
var result = httpClient.PutAsync("api/v1/user/90", httpcontent).Result.Content.ReadAsStringAsync().Result;
return result;
}