urllib のプロキシ経由 HTTP 交換をトレースする
プロキシ経路を持つ同じ opener で、Python 3 の urllib の HTTP ハンドラーと HTTPS ハンドラーのトレースを有効にします。
Python 3 の urllib opener を、プロキシ経路とデバッグレベルを有効にしたプロトコルハンドラーの両方で構築します:
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 と HTTPSHandler がトレースのオプションを提供します。ProxyHandler は経路を渡す役割で、このプロトコルのデバッグ設定を置く場所ではありません。示した公開リクエストは、公開の中間者を許可する場合に HTTP プロキシ一覧から未検証のアドレスを使えます。Cookie とアカウントのトークンはこの診断比較から外してください。
土台となる http.client のデバッグ出力は標準出力に書き出されます。送信したリクエストのバイト列と受信した応答ヘッダーを表示でき、プロキシの要求、トンネルの拒否、その後の宛先応答を見つける助けになります。
制御されたリクエストを使い、資格情報、Cookie、トークンを共有のトレース出力に残さないでください。