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

发布于 2021-12-01 22:01:43 字数 968 浏览 767 评论 14


//简化代码如下,手打的有点乱
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阻塞,但是没找到方法解决,有人遇到过吗




如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(14

成熟稳重的好男人 2021-12-05 15:24:32

就是看不懂英语。。悲哀

混吃等死 2021-12-05 15:24:32

我早查到那个贴了,确实关了就能用,但是循环时还得报错,管理cookie也麻烦,我选择了一楼的解决方式= =

后知后觉 2021-12-05 15:24:29

请先阅读下Http Component的官方文档吧。

反话 2021-12-05 15:24:19

关了再循环好像也不行,关了httpClient对象好像还报错

毁梦 2021-12-05 15:24:13

回复
不是关闭httpclient,而是关闭每次的返回对象。

别再吹冷风 2021-12-05 15:23:53

恩恩,我在网上也查到了,试了下确实可以了,感谢啊

等风来 2021-12-05 15:23:53

回复
是把关闭写在循环体里面吗

水水月牙 2021-12-05 15:23:39

我也遇到这个问题,每次循环都创建新的httpclient可以解决这个问题。

甜扑 2021-12-05 15:23:12

今天遇到了,循环里面放response = httpClient.execute(get);循环几次就不行了,卡住不动了

爱的那么颓废 2021-12-05 15:23:09

算了,你跟我用不是一个东西

掩饰不了的爱 2021-12-05 15:21:47

回复
@3kqing : 就是一个啊。你记得用了关闭一下资源,就不会出错了,亲测。res.getEntity().getContent().close();

冷默言语 2021-12-05 15:21:38

回复
@舔狗 : 牛皮,解决了,感谢

秋意浓 2021-12-05 15:21:04

回复
老哥,几年前的贴了,你还回我。。

温柔少女心 2021-12-04 17:49:42

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文