2010-09-15 8 views
7

Nach dem Scannen der urllib2 Quelle scheint es, dass Verbindungen automatisch geschlossen werden, selbst wenn Sie keep-alive angeben.Warum werden persistente Verbindungen nicht von URLLib2 unterstützt?

Warum ist das?

Wie es jetzt ist, verwende ich einfach httplib für meine persistenten Verbindungen ... aber wundere mich, warum dies in urllib2 deaktiviert (oder vielleicht mehrdeutig) ist.

Antwort

7

Es ist eine bekannte Grenze von urllib2 (und urllib ebenso). IMHO der beste Versuch bis jetzt, es zu beheben und es richtig zu machen, ist Garry Bodsworth coda_network für Python 2.6 oder 2.7 - Ersetzung, gepatchte Versionen von Urllib2 (und einigen anderen Modulen) zur Unterstützung Keep-Alive (und eine Reihe von anderen kleineren aber Ganz Willkommen Korrekturen).

+0

Alex, endlich eine klare Antwort auf diese Frage ("es ist ein bekanntes Limit"), bleibt die Frage, warum ist URLLib2 auf diese Weise geschrieben? – sbartell

+1

@sbartell, weil niemand der Meinung war, dass das Problem wichtig genug war, um einen Patch an den Python-Code zu senden und ihn akzeptieren zu lassen - ich tat es nicht, auch nicht Sie und so weiter für Millionen von Menschen, die es könnten und zweifellos Wenn ** sie das Problem für wichtig hielten (vorausgesetzt, sie sind anständige Bürger der Open-Source-Gemeinde, natürlich, aber, hey, sind wir nicht alle?). Ich denke, Gary hat den richtigen Ansatz gewählt, indem er eine Lösung von Drittanbietern veröffentlicht hat, so dass viele reale "Feld" -Erfahrungen in einer Vielzahl von Anwendungen gesammelt werden können, bevor die Dinge in die Standardbibliothek "eingefroren" werden. –

3

Sie können auch überprüfen httplib2, die persistente Verbindungen unterstützt. Nicht ganz das gleiche wie Urllib2 (in dem Sinne, dass es nur http und nicht "irgendeine Art von URL"), aber einfacher als httplib (und imho auch einfacher als urllib2, wenn Sie wirklich http tun wollen).

+0

httplib unterstützt sie, wir verwenden einfach das gleiche httpconcontion Objekt wieder. – sbartell

+0

Es übertreibt mich nur, warum urllib2 dies unterstützt. – sbartell

Verwandte Themen