HTTP 传输编码问题

2014-11-06 09:47:38 +08:00
 odirus
现在业务里面部分接口是既提供给客户端也提供给网页使用的,在该入口处打印参数内容,使用Fiddler检测客户端HTTP请求和网页的HTTP请求,header中的Content-Type一致,都是"application/x-www-form-urlencoded; charset=UTF-8"。

当使用客户端的时候Content-Length(94)要小于使用网页时的Content-Length(102)。。。请问为什么呢?header中的各种参数都调成一致的,但是在传输的时候表单数据就不一样了,前者各项参数没有经过任何处理,但后者的参数都被urlencode了。

求教
2590 次点击
所在节点    问与答
4 条回复
pi1ot
2014-11-06 09:51:09 +08:00
和浏览器的具体实现有关,urlencode的处理字符范围不同
odirus
2014-11-06 09:55:11 +08:00
@pi1ot 现在我都不知道怎么处理比较好,同时需要兼容两种途径的数据传输。
pi1ot
2014-11-06 10:39:05 +08:00
@odirus 怎么会,遇到%XX就解码就可以了
chemzqm
2014-11-06 10:48:45 +08:00
客户端没有encode说明客户端实现有bug,另外你的 Content-Type 既然指定了 application/x-www-form-urlencoded就表明发送主题应当是编码后的ascii字符,加上charset没有任何意义。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144311

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX