Requests жауабы прокси артында бұрмаланған көрінеді ме? Brotli қолдауын тексеріңіз
Көшірілген Accept-Encoding:br хостингтегі Requests ортасының декодер қолдауынан асып кетуі мүмкін.
Ноутбук пен хостингтегі процесті екі түрлі деңгейде салыстырыңыз:
| Деңгей | Сұрақ |
|---|---|
| Content-Encoding | Клиент қайтарылған gzip/deflate/Brotli байттарын аша ала ма? |
| Charset | Ашылған байттар қалай мәтінге айналады? |
Requests әдетте gzip/deflate өңдейді; Brotli үшін орнатылған қолдау көрсетілетін кітапхана қажет. Қолмен көшірілген Accept-Encoding бұл орта оны декодтай алмаса да br жарнамалауы мүмкін. UTF-8 мәтінін таңдау Brotli-ді ашпайды.
Келіссөзді әдейі шектегенде:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Бар Session, HTTPS URL және қажетті тақырыптар/аутентификацияны пайдаланыңыз. Екі машинада шығатын Accept-Encoding, кіретін Content-Encoding және бума қолдауын салыстырыңыз; түрлендіретін делдал ескірген метадеректерді де беруі мүмкін. Бөлек жалпыға ашық бетті салыстыру, жалпыға ашық делдалдар рұқсат етілген жерде прокси URL үшін HTTP проксилер тізімі қолдана алады, бірақ мұрагерлік прокси тіркелгі деректерін, көшірілген тіркелгі тақырыптарын немесе жеке дене деректерінсіз.
Әйтпесе клиенттің қалыпты келіссөзін таңдаңыз. Requests-тің қолайлы content/text интерфейстері қолдау көрсетілетін кодтауды декодтайды, сондықтан тақырып оның атын атағаны үшін ғана олардың шығысын қайта ашпаңыз.