码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet的Response.setContentLength无效

时间:2016-05-11 17:55:27      阅读:1279      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!