Хүсэлт session.get()-ээр ажиллаж байгаад PreparedRequest болгон дахин бичсэний дараа гэрчилгээний шалгалтад унаж болно. Доод түвшний send зам ердийн request аргатай ижил орчны нэгтгэл хийдэггүй.

import requests

with requests.Session() as session:
    request = requests.Request("GET", "https://example.com/")
    prepared = session.prepare_request(request)

    settings = session.merge_environment_settings(
        prepared.url, {}, None, None, None
    )
    response = session.send(
        prepared,
        timeout=(5, 15),
        **settings,
    )
    response.raise_for_status()
    print(response.status_code)

Зорьсон URL өөрчлөлтийн дараа эцсийн бэлтгэсэн URL-ээр нэгтгэ. Прокси ба тойрох шийдвэр зорилтот хаягаас хамаардаг тул өмнөх URL-ийн тохиргоо жинхэнэ илгээх хүсэлтэд буруу байж болно.

CA тохиргоог амархан орхигдуулдаг

Ердийн орчны итгэл асаалттай, баталгаажуулалтыг илэрхий дарж тохируулаагүй бол нэгтгэл REQUESTS_CA_BUNDLE ба нөөц CURL_CA_BUNDLE-г тооцно. send-ийг анхны verify-тай шууд дуудах нь энэ CA хайлтыг хийхгүй. Шалгалтыг унтраах нь зориудын гэрчилгээний санг өгөхийн оронд ялгааг нууна.

Session.prepare_request() нь сессийн бэлтгэлийн үйлдлийг мөн хэрэглэнэ. Request.prepare()-ээр хүсэлт шууд үүсгэх нь тусдаа сонголт; сессийн cookie эсвэл өөр бэлтгэлийг автоматаар хэрэглэхийг бүү хүлээ.

Проксид илүү нарийн дүрэм бий

PreparedRequest бүр прокси орчны хувьсагчийг үл тоодог гэх нь буруу. Requests 2.34.2-д proxies нэрлэсэн аргумент байхгүй үед send анхны прокси утгуудыг тогтооно. send-д proxies={} өгөх нь яг тэр анхны утга тогтоох салааг алгасана.

merge_environment_settings-д өгсөн хоосон dictionary өөр үүрэгтэй: нэгтгэл түүнийг send-д өгөхөөс өмнө тохирох орчны замаар дүүргэж болно. Хоёр жишээнээс зөвхөн хоосон dictionary харах нь хүлээн авч буй өөр аргуудыг орхигдуулна.

Өөрийн хүсэлт бүтээх кодод бэлтгэл, орчны нэгтгэл, илгээлтийг хамтад нь байлга. Апп зориуд trust_env=False ашиглавал нэгтгэл тэр бодлогыг хүндэтгэнэ; орчныг санаатай унтраасан клиентэд тохиргоог тулгахгүй.

Холбоотой нийтлэлүүд