2013-04-14 20 views
6

org.apache.http.client.HttpClient kullanıyorum. Bu sınıfın kullanımı ile ilgili bir sorum var.org.apache.http.client.HttpClient - istek başına bir tane mi?

İstek üzerine yeni bir HttpClient oluşturmalıyım (ör., Bu hafif bir nesne olduğu için) veya çok sayıda http isteği başına benzersiz bir örnek kullanmak daha iyi olmalıdır (ör. Yarat/sil, pahalı olduğu için)? HttpClient yalnızca bir örneğinin kullanılması gerekiyorsa, HttpClient iş parçacığı güvenlidir (ör., Aynı anda birçok http isteği işleyebilir) veya bu durumda HttpClient s havuzu oluşturmak tercih edilir mi?

Aslında, istek başına yeni bir HttpClient oluşturuyorum. Uygulamamın kullanımının sonunda kapatılacak benzersiz bir örneği getConnectionManager().shutdown() kullanarak oluşturmam gerektiğinden şüpheleniyorum, ancak iş parçacığı tabanlı paralelliğin devam edip edemeyeceğimi bilmiyorum.

+0

İpucu - 'DefaultHttpClient,' @ ThreadSafe 'açıklaması ile birlikte gelir. –

+0

Oh, güzel ... bu yüzden, zaman başına birden çok http isteği ele alması gerektiğini savunuyorum. –

+0

Yep. [Daha fazlası] (http://hc.apache.org/httpclient-3.x/performance.html). "HttpClient örneğini yeniden kullan" a bakın. –

cevap

3

DefaultHttpClient, @ThreadSafe ek açıklığı ile işaretlenmiştir, bu nedenle Evet'i Güvenli bir şekilde kullanabilirsiniz. HTTPClient'in performans belgeleri, mümkünse tek bir örnek kullanarak aktif olarak recommends.

+0

Sabrınız ve ayrıntılı cevabınız için teşekkür ederim. Kodu yeniden düzenleyeceğim! –

+0

Rica ederim. –

İlgili konular