Frage

In Python 2 war es möglich, die Debug-Ausgabe von urllib zu erhalten, indem Sie

import httplib
import urllib
httplib.HTTPConnection.debuglevel = 1
response = urllib.urlopen('http://example.com').read()

Allerdings 3 in Python sieht es so verschoben wurde, um

http.client.HTTPConnection.set_debuglevel(level)

Aber ich bin mit urllib nicht direkt http.client. Wie kann ich es so einrichten, dass meine http-Request-Anzeige auf diese Weise Debug-Informationen?

Hier ist, was ich "m so weit mit. Was ist der beste Weg, um fortzufahren, wenn ich will Debug-Informationen in der Lage sein zu bekommen?

#Request Login page
cookiejar = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookiejar))
request = urllib.request.Request(options.uri)
add_std_headers(request)
response = opener.open(request)
response_string = response.read().decode("utf8")
# ...
War es hilfreich?

Lösung

Sie waren das erste Mal richtig. Sie können einfach die Zeile http.client.HTTPConnection.debuglevel = 1 am Anfang der Datei auf HTTP-Debugging-Anwendung weit drehen hinzuzufügen. urllib.request noch verwendet http.client.

Es scheint, dass es auch eine Möglichkeit, die Debugebene für einen einzelnen Handler zu setzen (durch urllib.request.HTTPHandler(debuglevel=1) Erstellen und einen Öffner mit dem Bau), aber auf meine Installation von Python3 (3.0b3) es ist nicht wirklich umgesetzt. Ich stelle mir vor, dass in neueren Versionen geändert wird!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top