Comparați laptopul și procesul găzduit pe două straturi diferite:

StratÎntrebare
Content-EncodingPoate clientul decomprima octeții gzip/deflate/Brotli returnați?
CharsetCum devin octeții decomprimați text?

Requests gestionează de obicei gzip/deflate; Brotli necesită o bibliotecă instalată și acceptată. Un Accept-Encoding copiat manual poate anunța br atunci când acest mediu nu îl poate decodifica. Alegerea textului UTF-8 nu decomprimă Brotli.

Când negocierea este limitată intenționat:

response = session.get(
    url,
    proxies={"https": "http://proxy.example:8080"},
    headers={"Accept-Encoding": "gzip, deflate"},
    timeout=30,
)
response.raise_for_status()

Folosiți Session existent, URL-ul HTTPS și antetele/autentificarea necesare. Comparați Accept-Encoding de ieșire, Content-Encoding de intrare și suportul pentru pachete pe ambele mașini; un intermediar care transformă poate furniza și metadate învechite. O comparație separată de pagină publică poate folosi Listă de proxy HTTP pentru URL-ul de proxy acolo unde intermediarii publici sunt permisi, fără acreditări de proxy moștenite, antete de cont copiate sau date private din corp.

În rest, preferați negocierea normală a clientului. Interfețele comode content/text din Requests decodează codificarea acceptată, așa că nu decomprimați din nou rezultatul doar pentru că antetul o numește.

Articole similare