Kun Requests on käytettävissä projektissa, anna kutsulle välityspalvelinkartoitus:

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)

Korvaa loopback-päätepiste toimivalla välityspalvelimellasi tai ehdokkaalla HTTP-välityspalvelinten luettelosta, jota testaat tällä pyynnöllä. Avaimet kuvaavat kohteen skeemoja: http HTTP-URL-osoitteille ja https HTTPS-URL-osoitteille. Arvot kuvaavat välityspalvelimen kuuntelijaa. Ne voivat olla eri päätepisteitä, jos verkko vaatii erilliset reitit.

Välityspalvelimen arvo http:// avaimen https alla on tarkoituksellinen. Requests pyytää HTTP-kuuntelijalta CONNECT-tunnelin ja muodostaa sitten sen kautta TLS-yhteyden kohteeseen välityspalvelimen kohde- ja porttikäytännön rajoissa. Arvon vaihtaminen muotoon https:// pyytää TLS:ää itse välityspalvelimeen; se voi epäonnistua, jos kuuntelija odottaa salaamatonta HTTP:tä.

Mitä kaksi aikakatkaisulukua tarkoittavat

timeout=(5, 15) määrittää yhteyden muodostamisen ja lukemisen aikakatkaisut. Se ei aseta koko pyynnölle viidentoista sekunnin takarajaa. Ajoittain saapuva data, useat osoitteet ja yhteysyritykset voivat pidentää kulunutta aikaa. Requests ei anna yleistä aikakatkaisua, jos asetus puuttuu. Valitse vastaukseen sopivat rajat ja lisää sovellustason takaraja, jos työ tarvitsee tiukan kokonaisaikabudjetin.

Käsittele virhe siinä vaiheessa, jossa se tapahtuu

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)

Hylätty CONNECT voi nostaa ProxyError-poikkeuksen ennen kuin kohteelta on vastausta. Haara HTTPError seuraa saatua vastausta, jossa on virhetila; Timeout tarkoittaa asetetun rajan umpeutumista. Tutki yhteydenmuodostuksen poikkeusketjut paikallisesti ja poista tunnuksia sisältävät päätepisteet sekä yksityiset URL-osoitteet ennen jakamista.

Pidä varmenteiden tarkistus käytössä. Jos valtuutettu verkko käyttää yksityistä CA:ta tai hallittua liikenteen sieppausta, anna odotettu luottamusmateriaali tarkistuksen poistamisen sijaan.

Eksplisiittiset pyyntökohtaiset merkinnät ohjaavat tässä annettuja reittejä, mutta puuttuvat skeemat voivat yhä saada vaikutteita ympäristön välityspalvelintunnistuksesta. Siirtäessäsi kutsun uudelleenkäytettävään Sessioniin päätä, miten ympäristömuuttujat, Session-oletukset ja pyyntökohtaiset ohitukset toimivat yhdessä; yhteyksien uudelleenkäyttö ja reitityskäytäntö ovat eri valintoja.

Aiheeseen liittyvät artikkelit