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")
# ...
¿Fue útil?

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!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top