Pieprasījums var darboties caur session.get() un pēc pārrakstīšanas par PreparedRequest neizturēt sertifikāta pārbaudi. Zemā līmeņa send ceļš neveic tādu pašu vides apvienošanu kā parastā request metode.

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)

Apvienojiet ar galīgo sagatavoto URL pēc paredzētajām URL izmaiņām. Starpniekservera un apiešanas lēmumi atkarīgi no mērķa, tādēļ agrākam URL savāktie iestatījumi var neatbilst patiesi sūtītajam pieprasījumam.

CA iestatījumu viegli nepamanīt

Ar ieslēgtu parasto uzticību videi apvienošana ņem vērā REQUESTS_CA_BUNDLE un rezerves CURL_CA_BUNDLE, ja pārbaude nav skaidri pārrakstīta. Tiešs send ar noklusēto verify neveic šo CA meklēšanu. Pārbaudes izslēgšana slēpj atšķirību, nevis nodrošina paredzēto sertifikātu krātuvi.

Session.prepare_request() piemēro arī sesijas sagatavošanas uzvedību. Veidot pieprasījumu tieši ar Request.prepare() ir atsevišķa izvēle; negaidiet automātiskas sesijas sīkdatnes vai citu sesijas sagatavošanu.

Starpniekserveriem ir konkrētāks noteikums

Būtu neprecīzi teikt, ka katrs PreparedRequest ignorē proxy vides mainīgos. Requests 2.34.2 send nosaka noklusētos starpniekserverus, ja trūkst nosauktā argumenta proxies. proxies={} nodošana send izlaiž tieši šo noklusēto vērtību zaru.

Tukšajai vārdnīcai, kas nodota merge_environment_settings, ir cita loma: apvienošana to var aizpildīt ar piemērojamiem vides ceļiem pirms tālākas nodošanas send. Skatoties tikai uz tukšu vārdnīcu divos fragmentos, tiek palaistas garām dažādās to saņemošās metodes.

Savā pieprasījumu veidošanas kodā turiet sagatavošanu, vides apvienošanu un sūtīšanu kopā. Kad lietotne apzināti izmanto trust_env=False, apvienošana ievēro šo politiku; tā neuzspiež vidi klientam, kas to tīši izslēdzis.

Saistītie raksti