2010-09-15 41 views
7

Sau khi quét nguồn urllib2, có vẻ như các kết nối được tự động đóng ngay cả khi bạn chỉ định tiếp tục hoạt động.Tại sao các kết nối liên tục không được hỗ trợ bởi URLLib2?

Tại sao điều này?

Vì bây giờ tôi chỉ sử dụng httplib cho các kết nối liên tục ... nhưng tự hỏi tại sao điều này bị vô hiệu hóa (hoặc có thể chỉ mơ hồ) trong urllib2.

Trả lời

7

Đó là giới hạn nổi tiếng của urllib2 (và urllib). IMHO là nỗ lực tốt nhất cho đến nay để sửa chữa nó và làm cho nó đúng là coda_network Garry Bodsworth cho Python 2.6 hoặc 2.7 - thay thế, vá các phiên bản của urllib2 (và một số mô-đun khác) để hỗ trợ giữ cho cuộc sống (và một bó khác nhỏ hơn nhưng khá các bản sửa lỗi chào mừng).

+0

Alex, cuối cùng là câu trả lời thẳng về vấn đề này ('nó' là giới hạn nổi tiếng '), Câu hỏi vẫn còn, tại sao URLLib2 được viết theo cách này? – sbartell

+1

@sbartell, bởi vì không ai cảm thấy vấn đề là đủ quan trọng để gửi một bản vá cho mã Python và chấp nhận nó - tôi đã không, bạn cũng vậy, và cứ thế cho hàng triệu người có thể và không nghi ngờ gì ** nếu ** họ cảm thấy vấn đề là quan trọng (giả sử họ là những công dân tốt của cộng đồng nguồn mở, tất nhiên, nhưng, này, phải không?). Tôi nghĩ Gary đã tiếp cận đúng cách bằng cách phát hành giải pháp của bên thứ ba để nhiều trải nghiệm "thực địa" trong thế giới thực có thể được tích lũy trước khi mọi thứ được "đóng băng" vào thư viện chuẩn. –

3

Bạn cũng có thể xem httplib2, hỗ trợ kết nối liên tục. Không hoàn toàn giống với urllib2 (theo nghĩa là nó chỉ http và không "bất kỳ loại url nào"), nhưng dễ dàng hơn httplib (và imho cũng dễ hơn urllib2 nếu bạn thực sự muốn làm http).

+0

httplib không hỗ trợ chúng, chúng tôi chỉ sử dụng lại đối tượng httpconnection tương tự. – sbartell

+0

Nó chỉ boggles tôi tại sao urllib2 không hỗ trợ này. – sbartell

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