Requestsi vastus paistab puhverserveri taga rikutud? Kontrollige Brotli tuge
Kopeeritud Accept-Encoding:br võib ületada hostitud Requestsi keskkonna dekoodri toe.
Võrrelge sülearvutit ja hostitud protsessi kahel erineval kihil:
| Kiht | Küsimus |
|---|---|
| Content-Encoding | Kas klient suudab tagastatud gzip/deflate/Brotli baidid lahti pakkida? |
| Charset | Kuidas saavad lahtipakitud baidid tekstiks? |
Requests käsitleb tavaliselt gzip/deflate; Brotli vajab toetatud paigaldatud teeki. Käsitsi kopeeritud Accept-Encoding võib reklaamida br, kui see keskkond ei suuda seda dekodeerida. UTF-8 teksti valik ei paki Brotlit lahti.
Kui läbirääkimist tahtlikult piirama hakatakse:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Kasutage olemasolevat Sessionit, HTTPS-URL-i ja vajalikke päiseid/autentimist. Võrrelge väljuvat Accept-Encodingut, saabuvat Content-Encodingut ja paketituge mõlemas masinas; teisendav vahendaja võib anda ka vananenud metaandmeid. Eraldi avaliku lehe võrdlus võib kasutada HTTP-puhverserverite loend oma puhverserveri URL-i jaoks seal, kus avalikud vahendajad on lubatud, ilma päritud puhverserveri mandaatide, kopeeritud konto päiste või privaatsete kehaandmeteta.
Vastasel juhul eelistage tavalist kliendi läbirääkimist. Requestsi mugavad content/text-liidesed dekodeerivad toetatud kodeeringu, seega ärge pakkige nende väljundit uuesti lahti ainult sellepärast, et päis seda nimetab.