session.proxies bir son nöqtəni göstərir, amma skript qabığın proksisini işlədirsə, eyni lüğəti yenidən təyin etmək ziddiyyəti həll etməz. Requests mühit proksi parametrlərini Session standartlarından üstün tutaraq birləşdirə bilər. Session-un mühitdən parametrlər aşkar etməyə davam edib-etməyəcəyini seçin.

Mühit aşkarlanmasını saxlayın, marşrutları sorğuda verin

Bu Session/mühit ziddiyyətindən qaçmaq üçün Requests-in tövsiyə etdiyi kimi ayrı çağırışa açıq dəyərlər ötürün:

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()

Yerli dinləyicini özünüzünkü ilə əvəz edin. İctimai HTTP son nöqtələrini müqayisə edirsinizsə, Session siyasətini sabit saxlayıb HTTP proksi siyahısından namizədlər seçin. Bu, təqdim olunan uyğunlaşdırma qeydlərini idarə edir; tətbiqin digər sxem və hostları üçün də şüurlu seçim edin. Xidmət, IDE, konteyner və ya CI icraçısı terminaldan fərqli mühit miras ala bilər.

Session öz parametrlərini idarə etsin

Tətbiq proksiləri mühitdən aşkar etməməlidirsə, siyasəti ilk sorğudan əvvəl qurun:

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 mühitlə bağlı sertifikat konfiqurasiyasına və avtomatik netrc autentifikasiyasına da təsir edir. Seçməzdən əvvəl bu asılılıqları nəzərə alın. Təsdiqlənmiş özəl CA paketi üçün açıq yol ötürə bilərsiniz:

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

Həqiqətən təsdiqlənmiş paketi işlədin və yoxlamanı açıq saxlayın. Başqa işlər istifadə edərkən bir Session-u dəyişmək əvəzinə hər marşrut siyasəti üçün ayrıca Session saxlayın.

Heç bir variant tətbiqin yolunu izah etmirsə, eyni icra mühitində və eyni zərərsiz hədəflə təcrid olunmuş Session-u tətbiqlə müqayisə edin. Mövcud proksi dəyişənlərini, trust_env dəyərini və çağırışın proxies ötürüb-ötürmədiyini qeyd edin; giriş məlumatlı URL-ləri paylaşılan jurnallardan kənarda saxlayın. Təcriddə uğur növbəti yoxlamanı Session yaradılması, adapterlər, hazırlanmış sorğu axınları və ya xüsusi nəqliyyat qatlarına yönəldir. curl mühit testi Requests-in öz birləşdirmə davranışını müəyyən etmir.

Əlaqəli məqalələr