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

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!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top