L'activation de la sortie de débogage pour python 3 urllib
-
16-09-2019 - |
Question
En python 2, il est possible d'obtenir une sortie de débogage de urllib en faisant
import httplib
import urllib
httplib.HTTPConnection.debuglevel = 1
response = urllib.urlopen('http://example.com').read()
Cependant, en python 3, il ressemble à ceci a été déplacé vers
http.client.HTTPConnection.set_debuglevel(level)
Cependant, j'utilise urllib pas http.client directement. Comment puis-je le configurer de sorte que mon écran de demande http informations de débogage de cette façon?
Voici ce que je "suis en utilisant à ce jour. Quelle est la meilleure façon de procéder si je veux être en mesure d'obtenir des informations de débogage?
#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")
# ...
La solution
Vous aviez raison la première fois. Vous pouvez simplement ajouter la http.client.HTTPConnection.debuglevel = 1
ligne au début de votre fichier pour activer l'application à l'échelle de débogage HTTP. urllib.request
utilise encore http.client
.
Il semble qu'il y ait aussi un moyen de régler le debuglevel pour un seul gestionnaire (en créant urllib.request.HTTPHandler(debuglevel=1)
et la construction d'un ouvre-porte que), mais sur mon installation de python3 (3.0b3), il est pas réellement mis en œuvre. Je suppose que cela a changé dans les versions les plus récentes!