Rastrear a troca HTTP do urllib através do proxy
Ative o rastreamento dos manipuladores HTTP e HTTPS do urllib do Python 3 no mesmo opener que detém a rota do proxy.
Construa o opener do urllib do Python 3 com a rota do proxy e com os manipuladores de protocolo cujo nível de depuração está ativado:
from urllib.request import (
HTTPHandler, HTTPSHandler, ProxyHandler, build_opener,
)
opener = build_opener(
ProxyHandler({
'http': 'http://proxy.example:8080',
'https': 'http://proxy.example:8080',
}),
HTTPHandler(debuglevel=1),
HTTPSHandler(debuglevel=1),
)
with opener.open('https://www.example.com/', timeout=10) as response:
print(response.status)
HTTPHandler e HTTPSHandler expõem a opção de rastreamento. ProxyHandler fornece a rota; não é aí que esta configuração de depuração de protocolo pertence. O pedido público mostrado pode usar um endereço não verificado da lista de proxies HTTP quando intermediários públicos são permitidos; mantenha cookies e tokens de conta fora desta comparação de diagnóstico.
A saída de depuração subjacente do http.client é impressa na saída padrão. Ela pode mostrar os bytes do pedido enviado e os cabeçalhos da resposta recebida, o que ajuda a localizar um desafio do proxy, uma recusa de túnel ou uma resposta posterior do destino.
Use um pedido controlado e mantenha credenciais, cookies e tokens fora da saída de rastreamento partilhada.