Ef Requests hefur þegar afþjappað líkama biður framsending með Content-Encoding: gzip næsta biðlara um að afþjappa hann aftur. Ákveðið hvaða hleðsluframsetningu proxyið sendir áður en hausarnir eru afritaðir.

Send hleðslaContent-hausar
Upprunaleg kóðuð bætiHaldið viðeigandi kóðun og nákvæmri hleðslulengd
Afkóðuð bætiFjarlægið afkóðuðu kóðunina; fjarlægið eða endurreiknið samsvarandi lengd

Fyrir kóðuð hleðslubæti les þetta brot hráa straum urllib3 án content-afkóðunar:

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 er fyrirliggjandi svarúttak. Staða þess og hausar verða þegar að fylgja valinni stefnu; þetta brot útfærir ekki fullan proxyþjón.

Flutningsrammi er aðskilinn frá gzip content-kóðun. HTTP-safnið ofanstraums hefur þegar séð um rammann, þar á meðal fjarlægingu búta, svo afritið ekki Transfer-Encoding blint. Þjónninn neðanstraums rammar sitt eigið svar jafnvel þótt hleðslan haldist gzip-kóðuð.

response.text ásamt UTF-8 kóðun breytir einnig framsetningunni og getur ekki varðveitt handahófskennd tvístæð gögn. Lokið eða notið ofanstraums svarið á hverri leið og meðhöndlið HTTP-villur samkvæmt proxy-samningnum: þetta dæmi kastar þeim í stað þess að senda þær áfram.

Tengdir greinar