首页 > 其他 > 详细

Servlet的Response.setContentLength无效

时间:2016-05-11 17:55:14      阅读:151      评论:0      收藏:0      [点我收藏+]

在看公司的代码的时候,有遇到了okhttp里面的 response.body().contentLength()调用,有点疑问:

 1.httpurlconnection里面 HttpConnection.getContentLength()是直接读的请求头的信息,所以只要是和服务器连接成功,调用这个方法是不访问网络的,那么okhttp呢? okhttp的 contentLength()是读的请求头的数据吗?还是调用的时候阻塞住,然后将服务端数据全部接受后返回收到的长度??

 

 心里有了疑问,第一件事就是去看okhttp的源码,初略看了一下,貌似没有解决我的疑问,所以我决定自己试验一下,试验的过程就不说了,只是写了一个简单的借口,不过在写接口的时候遇到了另外一个问题, 我在servelet里面设置了setContentLength方法,但是客户端并没有这个字段,查了一会才发现我的response.setContentLength()方法写在了response.getWriter()后面,所以不生效了,呜呜~

   好吧,直接给出试验的结果吧:

       okhttp的response.body().contentLength()方法调用的时候没有访问网络(andriod平台在主线程访问网络会报异常),数据是来自响应头的content_length字段。

 

Servlet的Response.setContentLength无效

原文:http://www.cnblogs.com/zhangyan-2015/p/5482812.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!