SORU
23 Ocak 2011, Pazar


Bağlantı serbest bırakmak için nasıl 4.0.1 - HttpClient?

URL avuç içinde bir döngü, aşağıdaki yaptığım her biri için var:

private String doQuery(String url) {

  HttpGet httpGet = new HttpGet(url);
  setDefaultHeaders(httpGet); // static method
  HttpResponse response = httpClient.execute(httpGet);   // httpClient instantiated in constructor

  int rc = response.getStatusLine().getStatusCode();

  if (rc != 200) {
    // some stuff...
    return;
  }

  HttpEntity entity = response.getEntity();

  if (entity == null) {
    // some stuff...
    return;
  }

  // process the entity, get input stream etc

}

İlk sorgu güzel, ikincisi ise bu özel durum atar:

Konuya özel "ana" java.lang.İllegalStateException: Geçersiz kullanımı SingleClientConnManager: bağlantı hala ayrılmış. Serbest bırakmak için emin olun ayrılırken önce bağlantı bir tane daha. at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.:199 java) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.:173 java)......

Bu sadece tek dişli basit bir uygulama. Nasıl bu bağlantıyı serbest miyim?

CEVAP
22 AĞUSTOS 2011, PAZARTESİ


Önerilen yöntem, 4.1, bağlantısını kapatın ve herhangi bir temel kaynakları serbest bırakmaktır Httpcomponents:

EntityUtils.consume(HttpEntity)

HttpEntity geçtiği yanıt bir varlıktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jkimisyellow

    jkimisyellow

    6 Mayıs 2009
  • jkimisyellow...ish

    jkimisyellow

    8 Temmuz 2009
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010