2009-08-02 30 views
10

Tôi rất ngạc nhiên khi thấy HttpWebRequest không có phương pháp đóng, nhưng phần đối ứng của nó là HttpWebResponse. Nó khiến tôi hơi bối rối và bất tiện. :-)HttpWebRequest không có phương pháp đóng?

Vì vậy, chúng tôi chỉ cần gọi Đóng khi trả lời và không cần xử lý yêu cầu? Mối quan tâm của tôi là về rò rỉ và hiệu quả sử dụng tài nguyên tốt hơn. Tôi đang sử dụng VSTS2008 + C# + .Net 3.5.

+1

(Tôi đã xóa bản sao và hợp nhất trong nội dung bổ sung) –

+0

bạn đã hỏi lại ** (bây giờ đã bị xóa)? Đừng làm điều đó xin vui lòng ... –

Trả lời

29

Có, bạn chỉ cần gọi nó trên đối tượng phản hồi.

Yêu cầu hoàn toàn không có gì. Nó không mở ổ cắm hay gì đó. Nó chỉ giữ một số dữ liệu và bạn chỉ có thể bỏ qua nó và vứt nó đi nếu bạn không cần nó (đó là một tài nguyên được quản lý thuần túy và bộ thu gom rác sẽ chăm sóc nó). Công cụ thực tế xảy ra sau khi một trong các phương pháp GetResponse được gọi.

+0

Xin chào, có tài liệu MS nào hay địa điểm "chính thức" khác giải thích các hoạt động bên trong của HttpWebRequest/Response không? – tamberg

+0

@tamberg bạn có thể lấy mã nguồn và tự mình đọc: http://referencesource.microsoft.com/netframework.aspx –

+0

Có vẻ như không hoạt động. Ít nhất cho một kết nối SSL, dường như không gửi gần máy chủ. – Tuntable

1

Phương thức đóng mà bạn tham chiếu trên HttpWebResponse nhằm gửi phản hồi đã hoàn thành tới Máy chủ Web. Trên đối tượng HttpWebRequest, tất cả nội dung có sẵn khi bạn bắt đầu xử lý, do đó không cần phải đóng và liên lạc với máy chủ.

4

Một loại suy:

Nếu tôi muốn nói chuyện với bạn và tôi đã chắc chắn tôi muốn nói chuyện với bạn tôi chỉ đơn giản là sẽ gọi tên của bạn (yêu cầu). Tuy nhiên, tùy thuộc vào bạn quyết định khi nào, làm thế nào và những gì để trả lời cho tôi (Đáp ứng). Vì vậy, bạn sẽ có quyền kiểm soát nhiều hơn các thông tin liên lạc hơn tôi, tôi chỉ mới bắt đầu nó.

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