Respons Requests kelihatan rosak di belakang proksi? Semak sokongan Brotli
Accept-Encoding:br yang disalin boleh mendahului sokongan penyahkod persekitaran Requests yang dihoskan.
Bandingkan komputer riba dan proses yang dihoskan pada dua lapisan berbeza:
| Lapisan | Soalan |
|---|---|
| Content-Encoding | Bolehkah klien menyahmampat bait gzip/deflate/Brotli yang dikembalikan? |
| Charset | Bagaimana bait yang dinyahmampat menjadi teks? |
Requests biasanya mengendalikan gzip/deflate; Brotli memerlukan pustaka dipasang yang disokong. Accept-Encoding yang disalin secara manual boleh mengiklankan br sedangkan persekitaran ini tidak dapat menyahkodnya. Pemilihan teks UTF-8 tidak menyahmampat Brotli.
Apabila perundingan dihadkan dengan sengaja:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Gunakan Session sedia ada, URL HTTPS dan pengepala/pengesahan yang diperlukan. Bandingkan Accept-Encoding keluar, Content-Encoding masuk dan sokongan pakej pada kedua-dua mesin; perantara yang mengubah juga boleh membekalkan metadata lapuk. Perbandingan halaman awam yang berasingan boleh menggunakan Senarai proksi HTTP untuk URL proksinya di tempat perantara awam dibenarkan, tanpa kelayakan proksi warisan, pengepala akaun yang disalin atau data badan peribadi.
Jika tidak, utamakan perundingan klien biasa. Antara muka content/text Requests yang mudah menyahkod pengekodan yang disokong, jadi jangan menyahmampat outputnya sekali lagi hanya kerana pengepala menamakannya.