Кога 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)

Заменете ја loopback крајната точка со вашето активно прокси или кандидат од листата со HTTP прокси-сервери што ќе го тестирате со ова барање. Клучевите ги опишуваат шемите на одредиштето: http за HTTP URL-адреси и https за HTTPS URL-адреси. Вредностите го опишуваат интерфејсот на кој проксито слуша. Може да се различни точки ако мрежата бара одвоени патеки.

Вредноста на прокси http:// под клучот https е намерна. Requests бара CONNECT-тунел од HTTP интерфејсот и потоа преку него воспоставува 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 и надминувањата по барање; повторната употреба на врски и политиката на рутирање се посебни избори.

Поврзани статии