Android: Invalid use of SingleClientConnManager: connection still allocated [duplicate]

半世苍凉 提交于 2019-11-30 03:21:56

问题


Possible Duplicate:
Exception using HttpRequest.execute(): Invalid use of SingleClientConnManager: connection still allocated

I am working in Android. I created HttpSingleton class to create single intance of HttpClient in my complete application.

This is my code to use this class:-

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

and this is my class for single instance

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

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

Then error is occurred is :-

SingleClientConnManager : Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. Please suggest me what mistake i have done. I really need your help. Thank you in advance.


回答1:


After calling:

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

Please make sure you make a call to either:

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

or

EntityUtils.consume(rp.getEntity());



回答2:


For Android:

If you are not interested in the content, the cheapest way to get rid of your connection and avoid the error "connection still allocated" is:

httpResponse.getEntity().consumeContent();

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



来源:https://stackoverflow.com/questions/9323844/android-invalid-use-of-singleclientconnmanager-connection-still-allocated

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!