关于httpclient中的execute阻塞问题,卡住不动了

3K哥 发布于 2016/05/05 11:10
阅读 10K+
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

 


//简化代码如下,手打的有点乱
new Thread(public run(){
while(isOK){
        HttpGet get=newHttpGet("http://test.get.com");
        response = httpClient.execute(get);
        test1 = EntityUtils.toString(response.getEntity());
        for(i;i<test1.size;i++){
        String test2=test[i];
        if(test2=0){
           HttpPost post =newHttpPost("http://www.test.com");
           HashMap<String, String> paramMap=newHashMap<String, String>();
           paramMap.put("ie","utf-8");
           paramMap.put("kw", postName);

//         .........

  response = httpClient.execute(post);//第一次循环可以执行到这一句,然后一直卡死在此处. 
}

else{
        system.out.println("未查找到数据,等待下次刷新数据");
} } } } ).star()

//请问各位大神这是怎么回事啊,只能循环post提交一次,第二次就卡在代码注释处不动,也不报错

//网上查过好像说是execute阻塞,但是没找到方法解决,有人遇到过吗




加载中
0
Skqing
Skqing

具体是怎么解决的,代码放出来啊

3K哥
3K哥
回复 @薄荷可乐 : 老哥,几年前的贴了,你还回我。。
薄荷可乐
回复 @舔狗 : 牛皮,解决了,感谢
3K哥
3K哥
回复 @3kqing : 就是一个啊。你记得用了关闭一下资源,就不会出错了,亲测。res.getEntity().getContent().close();
Skqing
Skqing
算了,你跟我用不是一个东西
Skqing
Skqing
今天遇到了,循环里面放response = httpClient.execute(get);循环几次就不行了,卡住不动了
下一页
0
一万
一万
我也遇到这个问题,每次循环都创建新的httpclient可以解决这个问题。
3K哥
3K哥
恩恩,我在网上也查到了,试了下确实可以了,感谢啊
0
狐狸糊涂
狐狸糊涂
该评论暂时无法显示,详情咨询 QQ 群:点此入群
3K哥
3K哥
回复 @狐狸糊涂 : 是把关闭写在循环体里面吗
狐狸糊涂
狐狸糊涂
回复 @寂寞抽支烟 : 不是关闭httpclient,而是关闭每次的返回对象。
3K哥
3K哥
关了再循环好像也不行,关了httpClient对象好像还报错
0
10书生
10书生
请先阅读下Http Component的官方文档吧。
3K哥
3K哥
就是看不懂英语。。悲哀
0
hibegin
hibegin
该评论暂时无法显示,详情咨询 QQ 群:点此入群
3K哥
3K哥
我早查到那个贴了,确实关了就能用,但是循环时还得报错,管理cookie也麻烦,我选择了一楼的解决方式= =
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部