Invalid use of SingleClientConnManager: connection still allocated



httpPost.releaseConnection();  该代码只会复用连接,并不会关闭当前连接,其实下面的方法client.getConnectionManager().closeIdleConnections(0, TimeUnit.MICROSECONDS); 在某些时候也没关闭,感觉和httpPost.releaseConnection(); 只是起到同样复用的结果,两个都写更加保障(在某些版本中两个方法只会有其中一个)

httpclient 4种关闭连接  参考这里面的4种方法  (个人未试过) 第三种方法貌似可以 

在android4.2中   client.getConnectionManager().closeIdleConnections(0, TimeUnit.MICROSECONDS);

在httpclient 4.2 种   client.getConnectionManager().closeIdleConnections(0, TimeUnit.MICROSECONDS);

经测试 ,上面两种调用也无用

client.getConnectionManager().closeIdleConnections(0, TimeUnit.MICROSECONDS); 
在上面加上
httpGet.abort();  
就再也没有出现该错了


代码

  1. String result = null;
  2. HttpPost httpPost = new HttpPost(serverUrl);
  3. try {
  4. StringEntity e = new StringEntity(bodyStr,"UTF-8");
  5. httpPost.setEntity(e);
  6. httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");
  7. HttpResponse response = this.client.execute(httpPost);
  8. if(response.getStatusLine().getStatusCode() == 200) {
  9. result = EntityUtils.toString(response.getEntity(), "utf-8");
  10. }
  11. } catch (Exception var10) {
  12. LogL.e(var10.getMessage());
  13. result = null;
  14. }finally {
  15. httpPost.abort(); //终止
  16. client.getConnectionManager().closeIdleConnections(0, TimeUnit.MICROSECONDS); //再次调用确保回收
  17. }
  18. return result;


终极方法

client  = new .... (重新实例化client)



httpclient 释放连接的问题 Invalid use of SingleClientConnManager: connection still allocated的更多相关文章

  1. java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.

    java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.M ...

  2. HttpClient 释放连接

    Release the Connection:释放连接 This is a crucial step to keep things flowing. We must tell HttpClient t ...

  3. httpclient httpclient使用连接池

    httpclient使用连接池 http协议是无状态的,但毕竟是基于tcp的,底层还是需要和服务器连接的, 对于需要从同一个站点抓取大量网页的程序,应该使用连接池,否则每次抓取都和web站点建立连接, ...

  4. 对于System.Net.Http的学习(二)——使用 HttpClient 进行连接

    对于System.Net.Http的学习(一)——System.Net.Http 简介  使用 HttpClient 进行连接 使用 System.Net.Http 命名空间中的 HttpClient ...

  5. TCP释放连接的四次挥手过程

    TCP断开连接的过程:TCP四次挥手. 数据传输结束后,通信的双方都可释放连接.现在A和B都处于ESTABLISHED状态.A的应用进程先向TCP发出连接释放报文段,主动关闭TCP连接.A把连接释放报 ...

  6. TCP释放连接时为什么time_wait状态必须等待2MSL时间

    为什么上图中的A在TIME-WAIT状态必须等待2MSL时间呢? 第一,为了保证A发送的最后一个ACK报文能够到达B.这个ACK报文段有可能丢失,因而使处在LAST-ACK状态的B收不到对已发送的FI ...

  7. JDBC连接数据库和释放连接

    用久了hibernate现在对于JDBC是怎么实现数据库的连接和释放,所以特地总结下关于JDBC的知识,目的是用于提醒自己很多Java的基础知识需要健全. package com.ssh.action ...

  8. 使用 HttpClient 进行连接

    对于System.Net.Http的学习(二)——使用 HttpClient 进行连接   对于System.Net.Http的学习(一)——System.Net.Http 简介  使用 HttpCl ...

  9. TCP三次握手详解及释放连接过程

    TCP在传输之前会进行三次沟通,一般称为"三次握手",传完数据断开的时候要进行四次沟通,一般称为"四次挥手". 两个序号和三个标志位: (1)序号:seq序号, ...

随机推荐

  1. GPGPU OpenCL Reduction操作与group同步

    Reduction操作:规约操作就是由多个数生成一个数,如求最大值.最小值.向量点积.求和等操作,都属于这一类操作. 有大量数据的情况下,使用GPU进行任务并行与数据并行,可以收到可好的效果. gro ...

  2. DataBindings的用法

    在C#操作数据库过程中,针对一般的文本控件,比如TextBox,Label等,我们赋值直接使用类似TextBox.Text=****的方式来进行,这种方式从某种意义上来说的确是最简便的方式,但是对于复 ...

  3. Fragment 生命周期 事务 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  4. jQuery过滤选择器:not()方法介绍

    jQuery(':not(selector)') 在jQuery的早期版本中,:not()筛选器只支持简单的选择器,说明我们传入到:not这个filter中的selector可以任意复杂,比如:not ...

  5. [AngularJS] Angular 1.3 ngAria - 2

    This is an highlight about ngAira in Angular Document abou ngAira Where can use ngAria? Currently, n ...

  6. Jquery Validate结合QTip实现绚丽的表单验证

    相信做过前端开发的童鞋,一定都涉及到表单验证的模块设计,也定都会对Alert的粗暴提示厌恶至极.当然,我也不例外.一直期待着,一种比较优雅提示效果. 看到这,大家可能觉得Jquery Validate ...

  7. Ubuntu 64位安装32位运行库

    sudo apt-get install ia32-libs 32-64sudo apt-get install libc6:i386sudo apt-get install librt:i386su ...

  8. Python 默认参数

    定义默认参数 定义函数的时候,还可以有默认参数. 例如Python自带的 int() 函数,其实就有两个参数,我们既可以传一个参数,又可以传两个参数: >>> int('123') ...

  9. ACE-Streams架构简介及应用

    一概述 Streams框架是管道和过滤构架模式的一种实现,主要应用于处理数据流的系统.其实现以Task框架为基础.Task框架有两个特性非常适用于Streams框架:一是Task框架可用于创建独立线程 ...

  10. MySQL中的锁、隔离等级和读场景

    一.导言 关于MySQL中的锁还有隔离等级这类话题,其概念性的解释早已泛滥.记住其概念,算不上什么.更重要的是思考:他们的区别和联系在哪儿,为什么会有这样的概念. 1)MySQL的锁(Lock)分为行 ...