Os yw Requests eisoes wedi dadgywasgu corff, mae ei anfon gyda Content-Encoding: gzip yn gofyn i'r cleient nesaf ei ddadgywasgu eto. Penderfynwch pa gynrychiolaeth o'r llwyth y mae'r procsi'n ei hanfon cyn copïo ei benawdau.

Llwyth a anfonwydPenawdau content
Beitiau wedi'u hamgodio gwreiddiolCadwch yr amgodiad perthnasol a hyd manwl y llwyth
Beitiau wedi'u dadgodioTynnwch yr amgodiad dadgodio; tynnwch neu ailgyfrifwch y hyd cyfatebol

Ar gyfer beitiau llwyth wedi'u hamgodio, mae'r darn hwn yn darllen ffrwd crai urllib3 heb ddadgodio 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 yw allbwn yr ymateb presennol. Rhaid i'w statws a'i benawdau ddilyn y polisi a ddewiswyd yn barod; nid yw'r darn hwn yn gweithredu gweinydd procsi cyflawn.

Mae fframio trosglwyddo ar wahân i amgodiad content gzip. Mae'r llyfrgell HTTP i fyny'r afon eisoes wedi trin fframio, gan gynnwys tynnu darnau, felly peidiwch â chopïo Transfer-Encoding yn ddall. Mae'r gweinydd i lawr yr afon yn fframio ei ymateb ei hun hyd yn oed pan fydd y llwyth yn parhau wedi'i amgodio â gzip.

Mae response.text wedi'i ddilyn gan amgodiad UTF-8 hefyd yn newid y gynrychiolaeth ac ni all gadw data deuaidd mympwyol. Caewch neu defnyddiwch yr ymateb i fyny'r afon ar bob llwybr, a thriniwch wallau HTTP yn ôl contract y procsi: mae'r enghraifft hon yn eu codi yn lle eu hanfon ymlaen.

Erthyglau cysylltiedig