session.proxies bir uç noktayı gösterdiği halde betik kabuğun proxy’sini kullanıyorsa aynı sözlüğü yeniden atamak çatışmayı çözmez. Requests, ortam proxy ayarlarını Session varsayılanlarına üstün gelecek biçimde birleştirebilir. Session’ın ortamdan ayar keşfetmeye devam edip etmeyeceğini seçin.

Ortam keşfini koruyun, yolları istekte belirtin

Bu Session/ortam çatışmasını önlemek için Requests’in önerdiği gibi tekil çağrıya açık değerler verin:

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

with requests.Session() as session:
    response = session.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()

Yerel dinleyiciyi kendinizinkiyle değiştirin. Genel HTTP uç noktalarını karşılaştırıyorsanız Session politikasını sabit tutarak HTTP proxy listesinden adaylar alın. Bu, sağlanan eşleme girdilerini denetler; uygulamanın kullandığı diğer şemalar veya ana makineler için de bilinçli seçim yapın. Bir hizmet, IDE, kapsayıcı veya CI çalıştırıcısı terminalinizden farklı ortam devralabilir.

Session kendi ayarlarını yönetsin

Uygulama ortamdan proxy keşfetmemeliyse politikayı ilk istekten önce ayarlayın:

with requests.Session() as session:
    session.trust_env = False
    session.proxies = {
        "http": "http://127.0.0.1:8080",
        "https": "http://127.0.0.1:8080",
    }
    response = session.get(
        "https://example.com/",
        timeout=(5, 15),
    )
    response.raise_for_status()

trust_env=False ortamla ilgili sertifika yapılandırmasını ve otomatik netrc kimlik doğrulamasını da etkiler. Seçmeden önce bu bağımlılıkları hesaba katın. Onaylı özel CA paketi için açık bir yol verebilirsiniz:

response = session.get(
    "https://example.com/",
    timeout=(5, 15),
    verify="/path/to/approved-ca-bundle.pem",
)

Gerçek onaylı paketi kullanın ve doğrulamayı açık tutun. Başka işler kullanırken bir Session’ı değiştirmek yerine her yönlendirme politikası için ayrı Session tutun.

İki seçenek de uygulamanın yolunu açıklamıyorsa aynı çalışma ortamı ve zararsız hedefle yalıtılmış Session’ı uygulamayla karşılaştırın. Hangi proxy değişkenlerinin bulunduğunu, trust_env değerini ve çağrının proxies verip vermediğini kaydedin; kimlik bilgisi içeren URL’leri paylaşılan günlüklerden çıkarın. Yalıtılmış başarı sonraki incelemeyi Session oluşturma, bağdaştırıcılar, hazırlanmış istek akışları veya özel taşımalara yöneltir. curl ortam testi Requests’in kendi birleştirme davranışını belirleyemez.

İlgili makaleler