As Requests beskikber is yn jo projekt, jou dan in proxy-mapping mei oan de oprop:

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)

Ferfang it loopback-einpunt troch jo draaiende proxy of in kandidaat út de list mei HTTP-proxy’s dy’t jo mei dit fersyk teste sille. De kaaien beskriuwe de skema’s fan de bestimming: http foar HTTP-URL’s en https foar HTTPS-URL’s. De wearden beskriuwe de proxy-listener. It kinne ferskillende einpunten wêze as jo netwurk aparte rûtes fereasket.

In proxy-wearde http:// ûnder de kaai https is mei opsetsin sa ynsteld. Requests freget de HTTP-listener om in CONNECT-tunnel en bout dêrnei TLS nei de bestimming dêrtroch op, binnen it belied fan de proxy foar bestimmingen en poarten. Troch de wearde te feroarjen yn https:// freegje jo om TLS nei de proxy sels; dat kin mislearje as de listener HTTP yn platte tekst ferwachtet.

Wat de twa time-outgetallen betsjutte

timeout=(5, 15) stelt time-outs foar ferbinen en lêzen yn. It stelt gjin totale deadline fan fyftjin sekonden. Gegevens dy’t mei tuskenskoften binnenkomme, meardere adressen en ferbiningsbesykjen kinne de ferstrutsen tiid ferlingje. Requests jout gjin algemiene time-out as jo de ynstelling weilitte. Kies dêrom grinzen dy’t by it antwurd passe en foegje in deadline op applikaasjenivo ta as de taak in strang totaal tiidsbudzjet nedich hat.

Behannelje de flater yn de faze dêr’t er ûntstiet

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)

In wegere CONNECT kin ProxyError opsmite foardat der in antwurd fan de bestimming is. De tûke HTTPError folget op in ûntfongen antwurd mei in flaterstatus; Timeout betsjut dat in ynstelde grins ferrûn is. Undersykje keatlingen fan útsûnderingen by it opsetten lokaal, en helje einpunten mei ynlochgegevens en privee-URL’s fuort foardat jo se diele.

Lit sertifikaatferifikaasje ynskeakele. As it autorisearre netwurk in privee-CA of behearde yntersepsje brûkt, jou dan it ferwachte fertrouwensmateriaal mei ynstee fan de ferifikaasje út te skeakeljen.

Eksplisite ynstellingen per fersyk stjoere de hjir opjûne rûtes, mar it sykjen nei proxy’s yn de omjouwing kin noch altyd ynfloed hawwe op skema’s dy’t weilitten binne. As jo de oprop nei in opnij te brûken Session ferpleatse, beslis dan hoe’t omjouwingsfariabelen, standertynstellingen fan Session en ôfwikende ynstellingen per fersyk mei-inoar wurkje moatte; ferbiningen opnij brûke en rûtebelied binne aparte karren.

Relatearre artikelen