Einschalten Debug-Ausgabe für Python 3 urllib
-
16-09-2019 - |
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")
# ...
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!