Tracciare lo scambio HTTP di urllib tramite proxy
Abilitate la tracciatura dei gestori HTTP e HTTPS di urllib di Python 3 nello stesso opener che possiede la rotta del proxy.
Costruite l'opener urllib di Python 3 sia con la rotta del proxy sia con i gestori di protocollo il cui livello di debug è attivo:
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 espongono l'opzione di tracciatura. ProxyHandler fornisce la rotta; non è lì che va collocata questa impostazione di debug del protocollo. La richiesta pubblica mostrata può usare un indirizzo non verificato dall'elenco di proxy HTTP quando sono ammessi intermediari pubblici; tenete cookie e token dell'account fuori da questo confronto diagnostico.
L'output di debug sottostante di http.client viene stampato sullo standard output. Può mostrare i byte della richiesta inviata e le intestazioni della risposta ricevuta, il che aiuta a individuare una richiesta di autenticazione del proxy, un rifiuto del tunnel o una risposta successiva della destinazione.
Usate una richiesta controllata e tenete credenziali, cookie e token fuori dall'output di traccia condiviso.