Ligando saída de depuração para python 3 urllib
-
16-09-2019 - |
Pergunta
Em Python 2, foi possível para obter saída de depuração do urllib fazendo
import httplib
import urllib
httplib.HTTPConnection.debuglevel = 1
response = urllib.urlopen('http://example.com').read()
No entanto, em python 3, parece que isso foi movido para
http.client.HTTPConnection.set_debuglevel(level)
No entanto, estou usando urllib não http.client diretamente. Como posso configurá-lo para que a minha exibição pedido http informações de depuração desta forma?
Aqui está o que I "m usando até agora. Qual é a melhor maneira de proceder se eu quero ser capaz de obter informações de depuração?
#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")
# ...
Solução
Você estava certo da primeira vez. Você pode simplesmente adicionar o http.client.HTTPConnection.debuglevel = 1
linha no início do seu arquivo para ligar HTTP depuração-ampla aplicação. urllib.request
ainda usa http.client
.
Parece que há também uma maneira de definir o debuglevel para um único manipulador (criando urllib.request.HTTPHandler(debuglevel=1)
e construir um abridor com isso), mas no meu instalação de Python3 (3.0b3) não é realmente implementado. Imagino que mudou nas versões mais recentes!