Ако session.proxies покажува кон една крајна точка, а скриптата го користи проксито од обвивката, повторно доделување на истиот речник нема да го реши судирот. Requests може да ги спои прокси-поставките од околината со предност над стандардните на Session. Изберете дали Session треба и понатаму да открива поставки од околината.

Задржете откривање од околината, задавајте рути во барањето

Пренесете изрични вредности на поединечниот повик, како што Requests препорачува за избегнување на овој судир на Session со околината:

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

with requests.Session() as session:
    response = session.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()

Заменете го локалниот слушател со свој. Ако споредувате јавни HTTP точки, изберете кандидати од листата со HTTP прокси-сервери со непроменета политика на Session. Ова ги контролира дадените записи во мапирањето; направете свесен избор и за други шеми или хостови на апликацијата. Сервис, IDE, контејнер или CI извршувач може да наследи различна околина од терминалот.

Нека Session управува со своите поставки

Ако апликацијата не треба да открива прокси-сервери од околината, поставете ја политиката пред првото барање:

with requests.Session() as session:
    session.trust_env = False
    session.proxies = {
        "http": "http://127.0.0.1:8080",
        "https": "http://127.0.0.1:8080",
    }
    response = session.get(
        "https://example.com/",
        timeout=(5, 15),
    )
    response.raise_for_status()

trust_env=False влијае и на конфигурацијата на сертификати поврзана со околината и на автоматската netrc автентикација. Земете ги предвид овие зависности пред изборот. За одобрен приватен пакет CA сертификати може да дадете изрична патека:

response = session.get(
    "https://example.com/",
    timeout=(5, 15),
    verify="/path/to/approved-ca-bundle.pem",
)

Користете го навистина одобрениот пакет и оставете ја проверката вклучена. Чувајте посебна Session за секоја политика на рутирање наместо да менувате една додека ја користат други задачи.

Ако ниедна опција не ја објаснува рутата на апликацијата, споредете изолирана Session со апликацијата во истата извршна околина и со иста безопасна цел. Забележете ги присутните прокси-променливи, вредноста на trust_env и дали повикот дава proxies; изоставете URL-адреси со акредитиви од споделените дневници. Изолиран успех ја насочува следната проверка кон создавање Session, адаптери, текови на подготвени барања или сопствени транспорти. Тест на околината со curl не го определува сопственото однесување на Requests при спојување.

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