Anfonwch ffeiliau gzip gyda'r penawdau sy'n eu disgrifio
Dewiswch lwythau wedi'u hamgodio neu wedi'u dadgodio mewn procsi sy'n seiliedig ar Requests, yna rhowch benawdau content cyfatebol a'i fframio ei hun i'r ymateb i lawr yr afon.
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 anfonwyd | Penawdau content |
|---|---|
| Beitiau wedi'u hamgodio gwreiddiol | Cadwch yr amgodiad perthnasol a hyd manwl y llwyth |
| Beitiau wedi'u dadgodio | Tynnwch 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.