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

  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • Kassem G

    Kassem G

    25 EKİM 2006
  • Palmundo Ec

    Palmundo Ec

    11 HAZİRAN 2009