HTTPX માં proxy અને mounts થી પ્રોક્સી માર્ગ પસંદ કરવા
HTTPX ના proxy અને transport mounts યોગ્ય સ્કીમ, સ્પષ્ટ પર્યાવરણ વર્તન અને અલગ કનેક્શન તથા વાંચન સમય સાથે વાપરો.
એક એન્ડપોઇન્ટે ક્લાયન્ટની વિનંતી સંભાળવી હોય તો 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 યોગ્ય બંધ કરો.