Ha a Requests elérhető a projektben, adjon a hívásnak proxyleképezést:

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)

A visszacsatolási végpontot cserélje le működő proxyjára vagy a HTTP-proxyk listájából választott jelöltre, amelyet ezzel a kéréssel tesztel. A kulcsok a cél sémáit írják le: http HTTP URL-ekhez, https HTTPS URL-ekhez. Az értékek a proxy figyelőjét írják le. Különböző végpontok is lehetnek, ha a hálózat külön útvonalakat igényel.

A http:// proxyérték a https kulcs alatt szándékos. A Requests CONNECT-alagutat kér a HTTP-figyelőtől, majd ezen keresztül építi fel a cél TLS-kapcsolatát, a proxy célokra és portokra vonatkozó szabályzata szerint. Az érték https:// formára cserélése magához a proxyhoz kér TLS-t; ez meghiúsulhat, ha a figyelő titkosítatlan HTTP-t vár.

Mit jelent a két időkorlátérték?

A timeout=(5, 15) a kapcsolódás és olvasás időkorlátját állítja be. Nem szab tizenöt másodperces teljes határidőt. Az időszakosan érkező adatok, több cím és kapcsolódási próbálkozások meghosszabbíthatják az eltelt időt. A Requests nem ad általános időkorlátot, ha a beállítás kimarad. Válasszon a válaszhoz illő korlátokat, és adjon alkalmazásszintű határidőt, ha a feladat szigorú teljes időkeretet igényel.

A hibát abban a fázisban kezelje, ahol bekövetkezik

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)

Az elutasított CONNECT ProxyError kivételt okozhat még azelőtt, hogy lenne célválasz. A HTTPError ág hibastátuszú beérkezett választ követ; a Timeout egy beállított korlát lejártát jelenti. A kapcsolatépítési kivételláncokat helyben vizsgálja meg, és megosztás előtt távolítsa el a hitelesítő adatokat tartalmazó végpontokat és privát URL-eket.

Hagyja bekapcsolva a tanúsítvány-ellenőrzést. Ha az engedélyezett hálózat privát CA-t vagy felügyelt elfogást használ, a várt bizalmi anyagot adja meg az ellenőrzés kikapcsolása helyett.

A kifejezett kérésenkénti bejegyzések az itt megadott útvonalakat szabályozzák, de a kihagyott sémákra továbbra is hatással lehet a környezetből történő proxyfelderítés. A hívás újrahasználható Sessionbe helyezésekor döntse el, hogyan működjenek együtt a környezeti változók, Session-alapértékek és kérésenkénti felülírások; a kapcsolat újrahasználata és az útvonalválasztási szabályzat külön döntés.

Kapcsolódó cikkek