您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
-->
当前位置:首页 >> 编程问答 >> 网络通信 >> Content-Encoding设置为utf-8和application/json的区别

Content-Encoding设置为utf-8和application/json的区别

来源:网络整理     时间:2017/12/11 0:51:51     关键词:

关于网友提出的“ Content-Encoding设置为utf-8和application/json的区别”问题疑问,本网通过在网上对“ Content-Encoding设置为utf-8和application/json的区别”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: Content-Encoding设置为utf-8和application/json的区别
描述:

http


StringEntity s = new StringEntity(body, "utf-8");
s.setContentType(application/json);
s.setContentEncoding("utf-8");   //方法1
s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));      //方法2

上面将Content-Encoding设置为utf-8和application/json有什么区别?
我遇到一个很奇怪的问题就是,我一个项目按方法2设置的,Post请求可以正常发送和接收response。
但是另一个项目里 按照方法2设置就会报415错误...改成方法1就可行。不知道为什么。
头部设置是一样的,

HttpPost httppost = new HttpPost(uri);
httppost.setHeader("Content-Type", "application/json"); 
if (null != acceptType) {
        httppost.addHeader(HttpConstant.ACCEPT.getName(), acceptType);
}


解决方案1:

不是同一个东西, mime-type,encoding是content-type两个组成部分
前者代表请求的资源是什么类型的资源:文本,还是图片,还是应用程序等等
application/json代表请求的资源是:应用程序类型下的,json类型(某类型/子类型)
类似的,也会遇到 img/bmp , text/plain
服务器和浏览器会根据不同的mime类型来解析请求,并做出相应回应:比如服务器收到.php的请求,如果设置正确,一般对应是 application类型,服务器就会用相应的用处理程序映射去执行这个php,比如客户端收到application/json的响应,就知道返回来的是一个json字符串,比如收到img/jpg,就知道是个jpg图片。有的时候打开一个网页,会发现它显示的是网页源代码,而不是一个正常的页面,这种情况多半就是服务器上mime的问题,可能是设置错了,也可能是没有添加相应的处理程序映射。
encoding代表编码,客户端和服务器通信的时候,所有数据都会变成二进制来传输,碰到英文字符数字这些还好,如果是汉字,不同编码下它的二进制内容是完全不一样的,所以必须两边统一编码才可以正常通信。碰到100次网页乱码,其中至少有95次是因为编码不一致造成的,所以试着切换一下不同的编码,多半会发现乱码变正常


以上介绍了“ Content-Encoding设置为utf-8和application/json的区别”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4520303.html

相关图片

相关文章