Android:无效使用SingleClientConnManager:仍然分配了连接

时间:2012-02-17 06:25:47

标签: java android httpclient httpconnection

  

可能重复:
  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:仍然分配了连接。  确保在分配另一个连接之前释放连接。 请告诉我我做了什么错误。我真的需要你的帮助。 提前谢谢。

2 个答案:

答案 0 :(得分:28)

对于Android:

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

httpResponse.getEntity().consumeContent();

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

答案 1 :(得分:20)

致电:

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

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

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

EntityUtils.consume(rp.getEntity());