Dlulisela ama-byte e-gzip kanye nezihloko eziwachazayo
Khetha i-payload efakwe kukhodi noma ekhishiwe ku-proxy esekelwe ku-Requests, bese unikeza impendulo engezansi izihloko ze-content ezihambisanayo kanye nokwakheka kwayo.
Uma i-Requests isivele yakhulula umzimba, ukuwudlulisela nge-Content-Encoding: gzip kucela iklayenti elilandelayo ukuthi iwukhulule futhi. Nquma ukuthi iyiphi incazelo ye-payload ethunyelwa i-proxy ngaphambi kokukopisha izihloko zayo.
| I-payload ethunyelwe | Izihloko ze-content |
|---|---|
| Ama-byte okufakwa kukhodi okuqala | Gcina ukufakwa kukhodi okusebenzayo kanye nobude be-payload obunembile |
| Ama-byte akhishiwe | Susa ukufakwa kukhodi okukhishiwe; susa noma ubale kabusha ubude obuhambisanayo |
Kuma-byte e-payload afakwe kukhodi, le ngxenye ifunda umfudlana oluhlaza we-urllib3 ngaphandle kokukhipha i-content:
with requests.get(url, stream=True, timeout=(5, 30)) as upstream:
upstream.raise_for_status()
for block in upstream.raw.stream(65536, decode_content=False):
downstream.write(block)downstream ingumphumela wempendulo okhona. Isimo sayo nezihloko kufanele zivele zilandela inqubomgomo ekhethiwe; le ngxenye ayisebenzi iseva ye-proxy ephelele.
Ukwakheka kokudlulisa kuhlukile ekufakweni kukhodi kwe-content gzip. Umtapo we-HTTP waphezulu usuvele wabhekana nokwakheka, kuhlanganise nokususa izingcezu, ngakho ungakopishi i-Transfer-Encoding ngokungaboni. Iseva engezansi yakha impendulo yayo ngisho noma i-payload ihlała ifakwe kukhodi nge-gzip.
response.text ilandelwa ukufakwa kukhodi kwe-UTF-8 nakho kushintsha incazelo futhi akukwazi ukugcina idatha kanambambili engafuneki. Vala noma sebenzisa impendulo yaphezulu kuwo wonke umzila, futhi usingathe amaphutha e-HTTP ngokwesivumelwano se-proxy: lesi sibonelo siwaphonsa esikhundleni sokuwadlulisela.