Compareu l ordinador portàtil i el procés allotjat en dues capes diferents:

CapaPregunta
Content-EncodingPot el client descomprimir els bytes gzip/deflate/Brotli retornats?
CharsetCom es converteixen els bytes descomprimits en text?

Requests normalment gestiona gzip/deflate; Brotli requereix una biblioteca admesa instal·lada. Un Accept-Encoding copiat manualment pot anunciar br quan aquest entorn no el pot descodificar. La selecció de text UTF-8 no descomprimeix Brotli.

Quan limiteu intencionadament la negociació:

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

Utilitzeu la Session existent, l URL HTTPS i les capçaleres/autenticació necessàries. Compareu l Accept-Encoding sortint, el Content-Encoding entrant i el suport de paquets a les dues màquines; un intermediari transformador també pot subministrar metadades obsoletes. Una comparació separada de pàgina pública pot utilitzar Llista de proxys HTTP per a la seva URL de proxy on es permeten intermediaris públics, sense credencials de proxy heretades, capçaleres de compte copiades ni dades privades del cos.

En cas contrari, preferiu la negociació normal del client. Les interfícies còmodes content/text de Requests descodifiquen la codificació admesa, així que no descomprimiu la seva sortida una altra vegada només perquè la capçalera en digui el nom.

Articles relacionats