2013-04-14 11 views
6

Io uso org.apache.http.client.HttpClient. Ho una domanda che riguarda l'uso di questa classe.org.apache.http.client.HttpClient - uno per richiesta?

Devo creare un nuovo HttpClient per richiesta (ad esempio perché si tratta di un oggetto leggero) oppure è meglio utilizzare un'istanza univoca per molte richieste http (ad es., Perché creare/eliminare è costoso)? Se è necessario utilizzare solo un'istanza di HttpClient, è HttpClient thread safe (ad esempio, può gestire molte richieste http allo stesso tempo) oppure è preferibile in questo caso creare un pool di HttpClient s?

In realtà, creo un nuovo HttpClient per richiesta. Sospetto di dover creare un'istanza univoca da chiudere alla fine dell'utilizzo della mia applicazione utilizzando getConnectionManager().shutdown(), ma non so se posso mantenere il parallelismo basato su thread.

+0

Suggerimento: 'DefaultHttpClient' viene fornito con l'annotazione' @ ThreadSafe'. –

+0

Oh, bello ... quindi sostengo che dovrebbe gestire più richieste http per volta. –

+0

Sì. [Maggiori informazioni qui] (http://hc.apache.org/httpclient-3.x/performance.html). Dai un'occhiata a "Riusa l'istanza HttpClient". –

risposta

3

Il DefaultHttpClient è contrassegnato con l'annotazione @ThreadSafe quindi sì, è possibile utilizzarlo in un modo sicuro. La documentazione relativa alle prestazioni di HTTPClient è anche attivamente recommends utilizzando una singola istanza, ove possibile.

+0

Ti ringrazio per la pazienza e la risposta esauriente. Ho intenzione di riorganizzare il codice! –

+0

Prego. –

Problemi correlati