2013-04-14 34 views
6

Tôi sử dụng org.apache.http.client.HttpClient. Tôi có một câu hỏi liên quan đến việc sử dụng lớp này.org.apache.http.client.HttpClient - một yêu cầu?

Tôi có nên tạo HttpClient mới cho mỗi yêu cầu (ví dụ: vì nó là đối tượng sáng) hay tốt hơn nên sử dụng một trường hợp duy nhất cho nhiều yêu cầu http (ví dụ: tạo/xóa là đắt)? Nếu chỉ sử dụng một phiên bản HttpClient, an toàn là HttpClient chủ đề (ví dụ: nó có thể xử lý nhiều yêu cầu http cùng một lúc) hoặc trong trường hợp này là tạo ra một hồ bơi HttpClient s?

Thực ra, tôi tạo một HttpClient mới theo yêu cầu. Tôi nghi ngờ rằng tôi phải tạo một cá thể duy nhất để đóng vào cuối việc sử dụng ứng dụng của tôi bằng cách sử dụng getConnectionManager().shutdown(), nhưng tôi không biết liệu tôi có thể duy trì song song dựa trên Chủ đề hay không.

+0

Gợi ý - 'DefaultHttpClient' đi kèm với chú thích' @ ThreadSafe'. –

+0

Ồ, đẹp ... vì vậy tôi cho rằng nó sẽ xử lý nhiều yêu cầu http mỗi lần. –

+0

Đúng. [Thêm tại đây] (http://hc.apache.org/httpclient-3.x/performance.html). Hãy xem xét 'Tái sử dụng thể hiện HttpClient'. –

Trả lời

3

DefaultHttpClient được đánh dấu bằng chú thích @ThreadSafe để có, bạn có thể sử dụng nó theo cách an toàn Chủ đề. Tài liệu hiệu năng từ HTTPClient cũng tích cực recommends sử dụng một cá thể duy nhất nếu có thể.

+0

Tôi cảm ơn vì sự kiên nhẫn và câu trả lời đầy đủ của bạn. Tôi sẽ tổ chức lại mã! –

+0

Bạn được chào đón. –

Các vấn đề liên quan