问题描述
最近在研究httpclient保持长连接是否能提高响应速度的问题。想先请求百度首页,然后再向贴吧发请求,看在已经跟首页取得连接的情况下再请求贴吧会不会更快HttpGethttpget=newHttpGet("http://www.baidu.com/");//百度首页HttpGethttpget2=newHttpGet("http://tieba.baidu.com/index.html");//贴吧httpclient=newDefaultHttpClient();t1=System.currentTimeMillis();HttpResponseresponse=httpclient.execute(httpget1);t2=System.currentTimeMillis();response.getEntity().consumeContent();/*httpclient.getConnectionManager().shutdown();//关掉链接httpclient=newDefaultHttpClient();*/t3=System.currentTimeMillis();response=httpclient.execute(httpget2);t4=System.currentTimeMillis();response.getEntity().consumeContent();httpclient.getConnectionManager().shutdown();System.out.println("connect1:"+(t2-t1));System.out.println("connect2:"+(t4-t3));注释掉那部分是可选的,用来比较关和不关连接所用的时间上面得出一个很奇怪的结论,关掉连接时用时比不关还少,就是说关掉连接之后再发请求会更快理论上保持连接响应会更快才对吧?迷惑中~~求解救
解决方案
解决方案二:
给个大概数据参考执行shutdown时,t1=280t2=150不执行shutdown时,t1=280t2=220
解决方案三:
疏忽,上面的数据应该是connect1:280connect2:150和connect1:280connect2:220求解答!
解决方案四:
不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。
解决方案五:
引用3楼lyon_z的回复:
不明白楼主的意图。长连接是靠服务端不关闭响应流而一直保持连接来实现。
对我知道,但如果我在客户端执行shutdown不就是我主动关闭连接了么我最初意图是想验证长连接是否可以节省连接耗时,能节省多少