Requests ikiwa inapatikana kwenye mradi, pitisha ulinganisho wa proksi kwenye mwito:

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)

Badilisha sehemu ya mwisho ya loopback kwa proksi yako inayofanya kazi au mgombea kutoka orodha ya proksi za HTTP utakayepima kwa ombi hili. Funguo zinaeleza mipangilio ya lengwa: http kwa URL za HTTP na https kwa URL za HTTPS. Thamani zinaeleza sehemu inayopokea miunganisho ya proksi. Zinaweza kuwa sehemu tofauti ikiwa mtandao unahitaji njia tofauti.

Thamani ya proksi http:// chini ya ufunguo https imekusudiwa. Requests huomba handaki la CONNECT kutoka sehemu ya kupokea HTTP, kisha huanzisha TLS ya lengwa kupitia humo, kwa kuzingatia sera ya proksi ya malengwa na porti. Kubadili thamani kuwa https:// kunaomba TLS hadi proksi yenyewe; kunaweza kushindwa ikiwa inatarajia HTTP isiyosimbwa.

Maana ya namba mbili za muda wa kusubiri

timeout=(5, 15) huweka mipaka ya muda wa kuunganisha na kusoma. Haiweki kikomo cha jumla cha sekunde kumi na tano. Data inayoingia mara kwa mara, anwani nyingi na majaribio ya kuunganisha vinaweza kurefusha muda. Requests haitoi muda wa jumla ukiacha mpangilio huo. Chagua mipaka inayofaa jibu na uongeze kikomo cha muda kwenye programu ikiwa kazi inahitaji bajeti kali ya muda wote.

Shughulikia hitilafu katika hatua inapotokea

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 ikikataliwa inaweza kusababisha ProxyError kabla jibu la lengwa halijapatikana. Tawi la HTTPError hufuata jibu lililopokelewa lenye hali ya hitilafu; Timeout humaanisha kikomo kilichowekwa kimeisha. Kagua minyororo ya makosa ya uanzishaji wa muunganisho kwenye kompyuta yako, ukiondoa sehemu zenye taarifa za kuingia na URL binafsi kabla ya kushiriki.

Acha uthibitishaji wa vyeti ukiwa umewashwa. Ikiwa mtandao ulioidhinishwa unatumia CA binafsi au uingiliaji unaosimamiwa, toa nyenzo za uaminifu zinazotarajiwa badala ya kuzima uthibitishaji.

Ingizo wazi kwa kila ombi hudhibiti njia zilizotolewa hapa, lakini mipangilio ya protokoli iliyoachwa inaweza bado kuathiriwa na ugunduzi wa proksi wa mazingira. Unapohamisha mwito katika Session inayotumiwa tena, amua jinsi vigezo vya mazingira, chaguomsingi za Session na ubatilishaji wa kila ombi vinavyoshirikiana; kutumia muunganisho tena na sera ya uelekezaji ni chaguo tofauti.

Makala zinazohusiana