Requests atbilde aiz starpniekservera izskatās sabojāta? Pārbaudiet Brotli atbalstu
Nokopēts Accept-Encoding:br var apsteigt mitinātās Requests vides dekodētāja atbalstu.
Salīdziniet portatīvo datoru un mitināto procesu divos dažādos slāņos:
| Slānis | Jautājums |
|---|---|
| Content-Encoding | Vai klients var atspiest atgrieztos gzip/deflate/Brotli baitus? |
| Charset | Kā atspiestie baiti kļūst par tekstu? |
Requests parasti apstrādā gzip/deflate; Brotli nepieciešama instalēta atbalstīta bibliotēka. Manuāli nokopēts Accept-Encoding var pieteikt br, lai gan šī vide to nevar atkodēt. UTF-8 teksta izvēle neatspiež Brotli.
Kad sarunas tiek apzināti ierobežotas:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Izmantojiet esošo Session, HTTPS URL un nepieciešamos galvenes/autentifikāciju. Salīdziniet izejošo Accept-Encoding, ienākošo Content-Encoding un paku atbalstu abās mašīnās; pārveidojošs starpnieks var arī sniegt novecojušus metadatus. Atsevišķs publiskas lapas salīdzinājums var izmantot HTTP starpniekserveru saraksts sava starpniekservera URL iegūšanai tur, kur publiski starpnieki ir atļauti, bez mantotiem starpniekservera akreditācijas datiem, nokopētām konta galvenēm vai privātiem pamatteksta datiem.
Pretējā gadījumā dodiet priekšroku parastajām klienta sarunām. Ērtās Requests content/text saskarnes atkodē atbalstīto kodējumu, tāpēc neatspiediet to izvadi vēlreiz tikai tāpēc, ka galvene to nosauc.