排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术
原
c# HttpClient 给webapi post接口传递一个参数。传递参数的同时传递一个cookie

webapi post传递一个参数是真的坑,有多坑,可以看看这篇文章:
https://www.tnblog.net/aojiancc2/article/details/2874
当然现在说的是怎么用HttpClient来调用webapi post只有一个参数的情况
webapi如下,就是一个非常简单的post
[HttpPost]
public void Post([FromBody]string value)
{
}
开始尝试调用,肯定要避免第一个坑,键名为空
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
HttpClient httpClient = new HttpClient(handler);
var content = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"", "hhhh"}//键名必须为空
});
var response = httpClient.PostAsync("your address", content).Result;
//确保HTTP成功状态值
response.EnsureSuccessStatusCode();
//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
string result = response.Content.ReadAsStringAsync().Result;
然鹅报错:StatusCode: 415, ReasonPhrase: ‘Unsupported Media Type’
按照js调用的经验,设置一个json格式在尝试一下
var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip };
HttpClient httpClient = new HttpClient(handler);
var content = new FormUrlEncodedContent(new Dictionary<string, string>()
{
{"", "hhhwww"}//键名必须为空
});
//设置json格式
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = httpClient.PostAsync("你的地址", content).Result;
//确保HTTP成功状态值
response.EnsureSuccessStatusCode();
//await异步读取最后的JSON(注意此时gzip已经被自动解压缩了,因为上面的AutomaticDecompression = DecompressionMethods.GZip)
string result = response.Content.ReadAsStringAsync().Result;
然鹅,和ajax调用一样报错:StatusCode: 400, ReasonPhrase: ‘Bad Request
按照ajax调用的经验,把它换成stringcontent传值把,注意三点,不能有key,而且格式设置成json,还有就是格式用json序列化一下
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
StringContent strcontent = new StringContent(JsonConvert.SerializeObject("alal"), Encoding.UTF8, "application/json");
var result = httpClient.PostAsync("your address", strcontent).Result;
传递参数的同时传递一个cookie
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
StringContent strcontent = new StringContent(JsonConvert.SerializeObject("aa"), Encoding.UTF8, "application/json");
var message = new HttpRequestMessage(HttpMethod.Post, "your address");
//设置cookie信息
message.Headers.Add("Cookie", "token=" + token);
//设置contetn
message.Content = strcontent;
//发送请求
var httpResponseHeaders = httpClient.SendAsync(message).Result;
搞定收工
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价
忘掉过去式
优秀[旺柴][旺柴]