एका एंडपॉइंटने क्लायंटच्या विनंत्या हाताळायच्या असतील तर proxy= वापरा. गंतव्य स्कीमसाठी वेगवेगळे मार्ग हवे असतील तर mounts= वापरा. उदाहरणे हे HTTPX इंटरफेस वापरतात; जुन्या proxies= APIच्या प्रकल्पाला त्याच्या आवृत्तीनुसार मांडणी हवी.

एक एंडपॉइंट

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)

स्थानिक लिसनर चालू HTTP प्रॉक्सीने बदला. HTTP प्रॉक्सी यादीतील उमेदवारही तुमच्या गंतव्यासोबत तपासावा लागतो. HTTPS लक्ष्य CONNECTने हा http:// एंडपॉइंट वापरू शकते. स्कीम https:// केल्यास खुद्द प्रॉक्सीपर्यंत TLS मागितले जाते; लिसनर आणि क्लायंट दोघांनी त्याला समर्थन द्यावे.

गंतव्य स्कीमनुसार वेगळे मार्ग

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)

Mountच्या कळा लक्ष्य URLशी जुळतात. येथे HTTP लक्ष्य पोर्ट 8080 तर HTTPS लक्ष्य 8081 निवडते. प्रॉक्सी मूल्य लिसनरचा स्वतःचा प्रोटोकॉल सांगते, म्हणून HTTPS mountमध्ये http:// प्रॉक्सी असणे योग्य आहे. स्वतःचे एंडपॉइंट देऊन दोन्ही गंतव्य स्कीम तपासा.

दोन्ही पद्धती क्लायंटवर आणि दिलेल्या transportवर trust_env=False सेट करतात. नाहीतर HTTPX डिफॉल्टने प्रॉक्सी व प्रमाणपत्रांचे पर्यावरणीय चल वाचते. तैनाती त्यांच्यावर अवलंबून असेल तर शोध चालू ठेवा किंवा आवश्यक मार्ग व विश्वास स्पष्ट सेट करा. खासगी विश्वासासाठी तुमच्या HTTPX आवृत्तीचा समर्थित TLS context व CA मांडणी वापरा; गंतव्य पडताळणी सुरू ठेवा. HTTPS प्रॉक्सीचा विश्वास गंतव्याच्या विश्वासापासून वेगळा असू शकतो.

httpx.Timeout(15.0, connect=5.0) जोडणीची वेळमर्यादा बदलते आणि इतर मांडलेल्या भागांना डिफॉल्ट मूल्य देते. वाचन, लेखन व pool प्रतीक्षेला वेगळ्या मर्यादा आहेत; पंधरा सेकंद ही एकूण गेलेल्या वेळेची अंतिम मर्यादा नाही. Pool timeout म्हणजे इतर कामाने उपलब्ध जोडण्या धरून ठेवल्या आहेत असेही असू शकते. प्रॉक्सी पोहोचत नसल्याचा पुरावा मानण्याआधी क्लायंट व streaming प्रतिसाद नीट बंद करा.

संबंधित लेख