Torzultnak tűnik a Requests válasza proxy mögött? Ellenőrizze a Brotli-támogatást
A másolt Accept-Encoding:br megelőzheti a hosztolt Requests környezet dekóder-támogatását.
Hasonlítsa össze a laptopot és a hosztolt folyamatot két különböző rétegen:
| Réteg | Kérdés |
|---|---|
| Content-Encoding | Ki tudja tömöríteni a kliens a visszakapott gzip/deflate/Brotli bájtokat? |
| Charset | Hogyan lesznek a kitömörített bájtokból szöveg? |
A Requests általában kezeli a gzip/deflate formátumot; a Brotlihoz telepített, támogatott könyvtár kell. A kézzel másolt Accept-Encoding br értéket hirdethet, amikor ez a környezet nem tudja dekódolni. Az UTF-8 szöveg kiválasztása nem tömöríti ki a Brotlit.
Amikor szándékosan korlátozza az egyeztetést:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Használja a meglévő Sessiont, a HTTPS URL-t és a szükséges fejléceket/hitelesítést. Hasonlítsa össze a kimenő Accept-Encoding, a bejövő Content-Encoding értékét és a csomagtámogatást mindkét gépen; az átalakító közvetítő elavult metaadatokat is adhat. Egy külön nyilvános oldal-összehasonlítás a HTTP proxy lista listát használhatja proxy URL-jéhez ott, ahol a nyilvános közvetítők engedélyezettek, örökölt proxy-hitelesítő adatok, másolt fiókfejlécek és privát törzsadatok nélkül.
Egyébként a szokásos kliens-egyeztetést részesítse előnyben. A Requests kényelmes content/text felületei dekódolják a támogatott kódolást, ezért ne tömörítse ki újra a kimenetüket csak azért, mert a fejléc megnevezi.