પ્રોજેક્ટમાં Requests ઉપલબ્ધ હોય ત્યારે કૉલને પ્રોક્સી મેપિંગ આપો:

import requests

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

response = requests.get(
    "https://example.com/",
    proxies=proxies,
    timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)

લૂપબેક એન્ડપોઇન્ટને તમારી ચાલતી પ્રોક્સી અથવા આ વિનંતીથી તપાસવાના HTTP પ્રોક્સીની યાદીના ઉમેદવારથી બદલો. કી ગંતવ્યની સ્કીમ દર્શાવે છે: HTTP URL માટે http અને HTTPS URL માટે https. મૂલ્યો પ્રોક્સી લિસનર દર્શાવે છે. નેટવર્કને અલગ માર્ગ જરૂરી હોય તો એન્ડપોઇન્ટ અલગ હોઈ શકે.

http:// પ્રોક્સી મૂલ્યને https કી નીચે રાખવું ઇરાદાપૂર્વક છે. Requests HTTP લિસનર પાસે CONNECT ટનલ માગે છે અને પછી તેમાંથી ગંતવ્ય સાથે TLS બનાવે છે, પ્રોક્સીના ગંતવ્ય અને પોર્ટના નિયમોને આધિન રહીને. મૂલ્ય https:// કરવાથી પ્રોક્સી સાથે જ TLS માગવામાં આવે છે; લિસનર એન્ક્રિપ્શન વગરનું HTTP અપેક્ષતો હોય તો નિષ્ફળ જઈ શકે.

ટાઇમઆઉટના બે આંકડાનો અર્થ

timeout=(5, 15) કનેક્શન અને વાંચનના ટાઇમઆઉટ ગોઠવે છે. તે કુલ પંદર સેકન્ડની અંતિમ મર્યાદા મૂકતું નથી. સમયાંતરે આવતો ડેટા, અનેક સરનામાં અને કનેક્શન પ્રયાસો વીતેલો સમય લંબાવી શકે છે. આ સેટિંગ છોડો ત્યારે Requests સામાન્ય ટાઇમઆઉટ આપતું નથી. પ્રતિસાદને યોગ્ય મર્યાદા પસંદ કરો અને કામને કડક કુલ સમયબજેટ જરૂરી હોય તો એપ્લિકેશન સ્તરે સમયમર્યાદા ઉમેરો.

નિષ્ફળતા જે તબક્કે થાય ત્યાં સંભાળો

try:
    response = requests.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()
except requests.exceptions.ProxyError as error:
    print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
    print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
    print("HTTP status:", error.response.status_code)

નકારાયેલ CONNECT ગંતવ્યનો પ્રતિસાદ હોય તે પહેલાં ProxyError ઊભું કરી શકે છે. HTTPError શાખા ભૂલ સ્ટેટસવાળા મળેલા પ્રતિસાદ પછી આવે છે; Timeout ગોઠવેલી મર્યાદા પૂરી થવાનું દર્શાવે છે. કનેક્શન બનાવવાની એક્સેપ્શન ચેઇન સ્થાનિક રીતે તપાસો અને વહેંચતાં પહેલાં ઓળખપત્ર ધરાવતા એન્ડપોઇન્ટ તથા ખાનગી URL દૂર કરો.

પ્રમાણપત્રની ચકાસણી ચાલુ રાખો. અધિકૃત નેટવર્ક ખાનગી CA અથવા મેનેજ્ડ ઇન્ટરસેપ્શન વાપરતું હોય તો ચકાસણી બંધ કરવાને બદલે અપેક્ષિત વિશ્વાસ સામગ્રી આપો.

દરેક વિનંતીની સ્પષ્ટ એન્ટ્રી અહીં આપેલા માર્ગ નિયંત્રિત કરે છે, પરંતુ છોડેલી સ્કીમને પર્યાવરણમાંથી પ્રોક્સી શોધવાની પ્રક્રિયા હજી અસર કરી શકે છે. કૉલ ફરી વાપરી શકાય તેવી Session માં ખસેડતાં નક્કી કરો કે પર્યાવરણ વેરિએબલ, Session ના મૂળભૂત મૂલ્ય અને વિનંતી દીઠ ઓવરરાઇડ કેવી રીતે સાથે કામ કરશે; કનેક્શનનો ફરી ઉપયોગ અને માર્ગ નીતિ અલગ પસંદગી છે.

સંબંધિત લેખો