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

  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006
  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • SRI International

    SRI Internat

    30 NİSAN 2008