Svar Requests lítur út fyrir að vera bjagað á bak við proxy? Athugaðu Brotli-stuðning
Afritað Accept-Encoding:br getur farið fram úr stuðningi afkóðara hýsts Requests-umhverfis.
Berðu saman fartölvuna og hýsta ferlið á tveimur mismunandi lögum:
| Lag | Spurning |
|---|---|
| Content-Encoding | Getur biðlarinn afþjappað gzip/deflate/Brotli bætin sem skilað er? |
| Charset | Hvernig verða afþjöppuð bæti að texta? |
Requests sér venjulega um gzip/deflate; Brotli krefst uppsetts studds bókasafns. Handvirkt afritað Accept-Encoding getur auglýst br þegar þetta umhverfi getur ekki afkóðað það. Val á UTF-8 texta afþjappar ekki Brotli.
Þegar samningaviðræðum er vísvitandi takmarkað:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Notaðu núverandi Session, HTTPS-slóðina og nauðsynlega hausa/auðkenningu. Berðu saman útleiðandi Accept-Encoding, innleiðandi Content-Encoding og pakkastuðning á báðum vélum; milliliður sem umbreytir getur líka veitt úrelt lýsigögn. Sérstakur samanburður á opinberri síðu getur notað Listi yfir HTTP proxy fyrir proxy-slóð sína þar sem opinberir milliliðir eru leyfðir, án arfgreindra proxy-skírlíka, afritaðra reikningshausa eða einkagagna í líkama.
Annars skaltu velja venjulegar samningaviðræður biðlarans. Þægilegu content/text viðmót Requests afkóða studda kóðun, svo afþjappaðu úttak þeirra ekki aftur bara vegna þess að hausinn nefnir hana.