Sendu gzip-bæti áfram með hausunum sem lýsa þeim
Veldu kóðað eða afkóðað hleðslu í proxy sem byggir á Requests og gefðu niðurstreymissvarinu samsvarandi content-hausa og sína eigin ramma.
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ðsla | Content-hausar |
|---|---|
| Upprunaleg kóðuð bæti | Haldið viðeigandi kóðun og nákvæmri hleðslulengd |
| Afkóðuð bæti | Fjarlæ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.