Трассировка HTTP-обмена urllib через прокси
Включите трассировку обработчиков HTTP и HTTPS в urllib Python 3 в том же opener, которому принадлежит прокси-маршрут.
Соберите opener urllib в Python 3 как с прокси-маршрутом, так и с обработчиками протокола, у которых включён уровень отладки:
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 и токены вне общего вывода трассировки.