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.

Artigos relacionados