Mukhang sira ang tugon ng Requests sa likod ng proxy? Suriin ang suporta sa Brotli
Ang kinopyang Accept-Encoding:br ay maaaring lumampas sa suporta ng decoder ng naka-host na kapaligiran ng Requests.
Ihambing ang laptop at ang naka-host na proseso sa dalawang magkaibang patong:
| Patong | Tanong |
|---|---|
| Content-Encoding | Kayang i-decompress ng kliyente ang ibinalik na gzip/deflate/Brotli bytes? |
| Charset | Paano nagiging teksto ang na-decompress na bytes? |
Karaniwang hinahawakan ng Requests ang gzip/deflate; kailangan ng Brotli ng naka-install at sinusuportahang library. Ang manu-manong kinopyang Accept-Encoding ay maaaring mag-anunsyo ng br gayong hindi ito ma-decode ng kapaligirang ito. Ang pagpili ng UTF-8 na teksto ay hindi nagde-decompress ng Brotli.
Kapag sadyang nililimitahan ang negosasyon:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Gamitin ang umiiral na Session, HTTPS URL, at mga kailangang header/authentication. Ihambing ang palabas na Accept-Encoding, papasok na Content-Encoding, at suporta sa pakete sa dalawang makina; ang tagapamagitan na nagbabago ay maaari ring magbigay ng lumang metadata. Ang hiwalay na paghahambing ng pampublikong pahina ay maaaring gumamit ng Listahan ng HTTP proxy para sa proxy URL nito kung saan pinapayagan ang mga pampublikong tagapamagitan, nang walang minanang kredensyal ng proxy, kinopyang header ng account, o pribadong data ng katawan.
Kung hindi, piliin ang normal na negosasyon ng kliyente. Ang maginhawang content/text interface ng Requests ay nagde-decode ng sinusuportahang coding, kaya huwag i-decompress muli ang output nito dahil lang pinangalanan ito ng header.