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

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007