אויב Requests האט שוין דעקומפּרעסירט א קערפּער, פֿרעגט ווייטערפירן אים מיט Content-Encoding: gzip דעם קומענדיקן קליענט אים נאכאמאל דעקומפּרעסירן. באַשליס וועלכע פּעילויד-פֿאָרשטעלונג דער פּראָקסי שיקט איידער דו קאפּירסט די קעפּלעך.

געשיקטער פּעילוידcontent קעפּלעך
אָריגינעלע אפיצירטע בייטןהאַלט די אָנווענדלעכע קאָדירונג און די פּינקטלעכע פּעילויד-לענג
דעקאדירטע בייטןאַוועקנעם די דעקאדירטע קאָדירונג; אַוועקנעם אָדער רעכן איבער די פּאַסיקע לענג

פֿאַר אפיצירטע פּעילויד-בייטן לייענט דער שטיקל דעם רויערן שטראָם פֿון urllib3 אָן 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 איז דער עקזיסטירנדיקער ענטפֿער-אויסגאַנג. זיין סטאַטוס און קעפּלעך מוזן שוין נאָכגיין דער אויסגעקליבענער פּאָליטיק; דער שטיקל פֿירט נישט אויס אַ פֿולן פּראָקסי-סערווער.

טראַנספֿער-פֿרײמינג איז באַזונדער פֿון gzip content-קאָדירונג. די אויבערשטע HTTP ביבליאָטעק האָט שוין באַהאַנדלט די פֿרײמינג, אַרײַנגערעכנט אַוועקנעמען שטיקער, דעריבער קאָפּיר נישט Transfer-Encoding בלינד. דער אונטערשטער סערווער פֿרײמט זיין אייגענע ענטפֿער אַפֿילו ווען דער פּעילויד בלײַבט gzip-אפיצירט.

response.text נאָכגעפֿאָלגט פֿון UTF-8 קאָדירונג ענדערט אויך די פֿאָרשטעלונג און קען נישט אָפּהיטן אַרביטראַרישע בינערע דאַטן. פֿאַרמאַך אָדער פֿאַרניץ דעם אויבערשטן ענטפֿער אויף יעדן וועג, און באַהאַנדל HTTP-טעותן לויט דעם פּראָקסי-קאָנטראַקט: דאָס ביישפּיל וואַרפֿט זיי אַנשטאָט זיי ווייטערפירן.

פֿאַרבונדענע אַרטיקלען