zoukankan      html  css  js  c++  java
  • Servlet的Response.setContentLength无效

    在看公司的代码的时候,有遇到了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字段。

  • 相关阅读:
    几种常用类的学习
    类,接口
    方法
    数组使用
    条件控制与循环
    类型转换,运算符
    Java基本类型
    SVN基本使用
    【转】MySQL的btree索引和hash索引的区别
    常用命令(java、linux)
  • 原文地址:https://www.cnblogs.com/zhangyan-2015/p/5482812.html
Copyright © 2011-2022 走看看