एउटा एन्डपोइन्टले क्लाइन्टका अनुरोध सम्हाल्नुपर्ने हो भने 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 response सही तरिकाले बन्द गर्नुहोस्।

सम्बन्धित लेखहरू