Requests yanıtı proxy arkasında bozuk mu görünüyor? Brotli desteğini denetleyin
Kopyalanmış bir Accept-Encoding:br, barındırılan Requests ortamının kod çözücü desteğini aşabilir.
Dizüstü bilgisayarı ve barındırılan süreci iki farklı katmanda karşılaştırın:
| Katman | Soru |
|---|---|
| Content-Encoding | İstemci dönen gzip/deflate/Brotli baytlarını açabiliyor mu? |
| Charset | Açılmış baytlar nasıl metne dönüşür? |
Requests genellikle gzip/deflate işler; Brotli kurulu ve desteklenen bir kitaplık gerektirir. Elle kopyalanmış bir Accept-Encoding, bu ortam çözemese bile br duyurabilir. UTF-8 metin seçimi Brotliyi açmaz.
Müzakere bilerek sınırlandığında:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()Mevcut Session, HTTPS URL ve gereken başlıklar/kimlik doğrulama kullanın. Her iki makinede giden Accept-Encoding, gelen Content-Encoding ve paket desteğini karşılaştırın; dönüştüren bir aracı eski üst verileri de sağlayabilir. Ayrı bir herkese açık sayfa karşılaştırması, herkese açık aracılara izin verilen yerlerde proxy URLsi için HTTP proxy listesi kullanabilir; ancak devralınan proxy kimlik bilgileri, kopyalanmış hesap başlıkları veya özel gövde verileri olmadan.
Aksi halde normal istemci müzakereyi tercih edin. Requestsin kullanışlı content/text arayüzleri desteklenen kodlamayı çözer, bu yüzden başlık adını söylüyor diye çıktılarını yeniden açmayın.