Android:SingleClientConnManager 的使用无效:连接仍然分配[重复]

Posted

技术标签:

【中文标题】Android:SingleClientConnManager 的使用无效:连接仍然分配[重复]【英文标题】:Android: Invalid use of SingleClientConnManager: connection still allocated [duplicate] 【发布时间】:2012-03-08 14:13:32 【问题描述】:

可能重复:Exception using HttpRequest.execute(): Invalid use of SingleClientConnManager: connection still allocated

我在 android 中工作。我创建了 HttpSingleton 类来在我的完整应用程序中创建 HttpClient 的单个实例。

这是我使用这个类的代码:-

HttpGet get = new HttpGet("url/dologin/savitagupta/savitagupta");
**HttpResponse rp = HttpSigleton.getInstance().execute(get);**          
if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) 
   // some code here

这是我的单实例类

public class HttpSigleton 
  private static HttpClient instance = null;
  protected HttpSigleton() 

  
  public static HttpClient getInstance() 
    if(instance == null) 
       instance =new DefaultHttpClient();
    
    return instance;
 

然后发生的错误是:-

SingleClientConnManager : SingleClientConnManager 的使用无效:连接仍然分配。 确保在分配另一个连接之前释放连接。 请告诉我我犯了什么错误。我真的需要你的帮助。 提前谢谢你。

【问题讨论】:

【参考方案1】:

调用后:

HttpResponse rp = HttpSigleton.getInstance().execute(get);

请确保您拨打以下任一电话:

String html = EntityUtils.toString(rp.getEntity() /*, Encoding */);

EntityUtils.consume(rp.getEntity());

【讨论】:

【参考方案2】:

对于安卓:

如果您对内容不感兴趣,摆脱连接并避免“仍然分配连接”错误的最便宜的方法是:

httpResponse.getEntity().consumeContent();

见http://developer.android.com/reference/org/apache/http/HttpEntity.html#consumeContent()

【讨论】:

以上是关于Android:SingleClientConnManager 的使用无效:连接仍然分配[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录