HttpClient 调用WebAPI时,传参的三种方式
2021-07-03 16:06
标签:com client color pos post style type headers ons HttpClient 调用WebAPI时,传参的三种方式 标签:com client color pos post style type headers ons 原文地址:https://www.cnblogs.com/xcj26/p/9887263.html public void Post()
{
//方法一,传json参数
var d = new {
username = " ",
password = " ",
grant_type = "password",
appcode = " ",
companyid = " ",
version = "1.0",
};
var data = JsonConvert.SerializeObject(d);
HttpContent httpContent = new StringContent(data);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
using (HttpClient httpClient = new HttpClient())
{
string responseJson = httpClient.PostAsync("http://192.168.8.178:1646/token", httpContent)
.Result.Content.ReadAsStringAsync().Result;
}
//方法二,传表单参数
FormUrlEncodedContent formContent = new FormUrlEncodedContent(new Dictionarystring, string>()
{
{"username"," " },
{"password"," " },
{"grant_type","password" },
{"appcode"," " },
{"companyid"," " },
{"version","1.0" },
});
using (HttpClient httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
httpClient.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
HttpResponseMessage response = httpClient.PostAsync("http://192.168.8.178:1646/token", formContent).Result;
if (response.IsSuccessStatusCode)
{
string result = response.Content.ReadAsStringAsync().Result;
}
}
///方法三,传字节流
using (HttpClient http = new HttpClient())
{
http.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
http.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
HttpResponseMessage message = null;
string xx = @"{ ""username"":"" "",""password"":"" "",""grant_type"":""password"",""appcode"":"" "",""companyid"":"" "",""version"":""1.0""}";
using (Stream dataStream = new MemoryStream(Encoding.Unicode.GetBytes(xx) ?? new byte[0]))
{
using (HttpContent content = new StreamContent(dataStream))
{
content.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
var task = http.PostAsync("http://192.168.8.178:1646/token", content);
message = task.Result;
}
}
if (message != null && message.StatusCode == System.Net.HttpStatusCode.OK)
{
using (message)
{
string result = message.Content.ReadAsStringAsync().Result;
}
}
}
}
文章标题:HttpClient 调用WebAPI时,传参的三种方式
文章链接:http://soscw.com/index.php/essay/101336.html