通过POST方式提交数据到接口的时候,常常会遇到这种句子:
webClient.Headers.Add("Content-Type", "application/json");
- 1
或者
webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
- 1
那究竟应该用哪种方式?
答案是跟我们提交的参数格式有关。
如果是通过页面表单方式提交,那就是"application/x-www-form-urlencoded";如果是json(要反序列化成字符串),那就是"application/json"。
对于"application/x-www-form-urlencoded",其参数组织形式,是键值对,类似于get方式的参数形式:name=张三&sex=男&tel=5354169,而json大家都知道,是这样的:
{ name:"张三", sex:"男", tel:"5354169",}
- 1
- 2
- 3
- 4
- 5
所以,如果你传递的参数是json,而你声明的header是"application/x-www-form-urlencoded",或者没有声明这个”Content-Type”(似乎默认就是”application/x-www-form-urlencoded”),则服务器拿不到提交的数据。数据是传过去了,但读不出来。
反之应该也一样。
2018.7.20
另外,如果提交的数据中含有汉字,编码跟服务器不同的话,也有可能导致服务器接收不到提交的数据。
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
本文详细解释了在使用POST方式提交数据时,application/json与application/x-www-form-urlencoded两种Content-Type的区别。前者适用于JSON格式数据,后者适用于表单数据。文章还提到了编码问题可能导致的数据接收失败。
5699

被折叠的 条评论
为什么被折叠?



