Bir son nöqtə müştəri sorğularını idarə etməlidirsə proxy= istifadə edin. Təyinat sxemlərinə müxtəlif marşrutlar lazımdırsa mounts= istifadə edin. Nümunələr bu HTTPX interfeyslərindən istifadə edir; köhnə proxies= API-li layihəyə öz versiyasına uyğun konfiqurasiya lazımdır.

Bir son nöqtə

import httpx

timeout = httpx.Timeout(15.0, connect=5.0)

with httpx.Client(
    proxy="http://127.0.0.1:8080",
    trust_env=False,
    timeout=timeout,
) as client:
    response = client.get("https://example.com/")
    response.raise_for_status()
    print(response.status_code)

Yerli dinləyicini işləyən HTTP proksi ilə əvəz edin. HTTP proksi siyahısından namizəd də təyinatınızla sınanmalıdır. HTTPS hədəfi bu http:// son nöqtəsini CONNECT vasitəsilə istifadə edə bilər. Sxemi https:// etmək isə proksinin özünə TLS istəyir; dinləyici və müştəri bunu dəstəkləməlidir.

Təyinat sxeminə görə ayrı marşrutlar

import httpx

mounts = {
    "http://": httpx.HTTPTransport(
        proxy="http://127.0.0.1:8080",
        trust_env=False,
    ),
    "https://": httpx.HTTPTransport(
        proxy="http://127.0.0.1:8081",
        trust_env=False,
    ),
}

with httpx.Client(
    mounts=mounts,
    trust_env=False,
    timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
    response = client.get("https://example.com/")
    response.raise_for_status()
    print(response.status_code)

Bağlama açarları hədəf URL-lərə uyğun gəlir. HTTP hədəfləri burada 8080, HTTPS hədəfləri 8081 portunu seçir. Proksi dəyəri dinləyicinin öz protokolunu təsvir edir, buna görə HTTPS bağlaması düzgün olaraq http:// proksi saxlaya bilər. Öz son nöqtələrinizi qoyun və hər iki təyinat sxemini yoxlayın.

Hər iki üsul müştəridə və verildiyi yerdə nəqliyyatlarda trust_env=False təyin edir. Əks halda HTTPX proksi və sertifikat mühit dəyişənlərini standart olaraq oxuyur. Yerləşdirmə onlardan asılıdırsa, aşkarlamanı açıq saxlayın və ya lazımi marşrut və etibarı açıq tənzimləyin. Özəl etibar üçün HTTPX versiyanızın dəstəklədiyi TLS konteksti və CA konfiqurasiyasını istifadə edin; təyinat yoxlamasını açıq saxlayın. HTTPS proksi etibarı təyinat etibarından ayrı ola bilər.

httpx.Timeout(15.0, connect=5.0) bağlantı vaxt həddini əvəz edir, digər konfiqurasiya olunmuş hissələrə standart dəyəri verir. Oxuma, yazma və hovuz gözləməsinin ayrı hədləri var; on beş saniyə real keçən vaxtın ümumi son həddi deyil. Hovuzun vaxt aşımı başqa işin mövcud bağlantıları tutduğunu göstərə bilər. Bunu proksinin əlçatmazlığının sübutu saymazdan əvvəl müştəriləri və axın cavablarını düzgün bağlayın.

Əlaqəli məqalələr