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")
# ...
Était-ce utile?

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!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top