Encendido de salida de depuración para el pitón 3 urllib
-
16-09-2019 - |
Pregunta
En Python 2, fue posible obtener una salida de depuración de urllib haciendo
import httplib
import urllib
httplib.HTTPConnection.debuglevel = 1
response = urllib.urlopen('http://example.com').read()
Sin embargo, en Python 3 que tiene este aspecto ha sido movido a
http.client.HTTPConnection.set_debuglevel(level)
Sin embargo, estoy usando urllib no http.client directamente. ¿Cómo se ajusta hacia arriba de manera que la pantalla de mi petición http información de depuración de esta manera?
Esto es lo que "estoy usando hasta ahora. ¿Cuál es la mejor manera de proceder si quiero ser capaz de obtener información de depuración?
#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")
# ...
Solución
Tenías razón la primera vez. Usted puede simplemente añadir el http.client.HTTPConnection.debuglevel = 1
línea al comienzo de su archivo para activar la aplicación a nivel de depuración de HTTP. urllib.request
sigue utilizando http.client
.
Parece que también hay una manera de establecer el debuglevel para un solo controlador (mediante la creación de urllib.request.HTTPHandler(debuglevel=1)
y la construcción de un abridor con eso), pero en mi instalación de python3 (3.0b3) En realidad no es implementado. Me imagino que eso ha cambiado en las versiones más recientes!