Zahteva lahko deluje prek session.get() in po prepisu v PreparedRequest odpove pri preverjanju potrdila. Nizkonivojska pot send ne izvede istega združevanja okolja kot običajna metoda 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)

Združujte s končnim pripravljenim URL po predvidenih spremembah. Odločitve o proxyju in obhodu so odvisne od cilja, zato so nastavitve za prejšnji URL lahko napačne za dejansko poslano zahtevo.

Nastavitev CA se lahko spregleda

Ob običajno vključenem zaupanju okolju združevanje upošteva REQUESTS_CA_BUNDLE in rezervni CURL_CA_BUNDLE, če preverjanje ni izrecno preglasovano. Neposredni send s privzetim verify ne izvede tega iskanja CA. Izklop preverjanja skrije razliko, namesto da bi zagotovil želeno shrambo potrdil.

Session.prepare_request() uporabi tudi vedenje priprave seje. Neposredno ustvarjanje zahteve prek Request.prepare() je ločena izbira; ne pričakujte samodejne uporabe piškotkov seje ali druge priprave seje.

Proxyji imajo natančnejše pravilo

Netočno bi bilo reči, da vsak PreparedRequest prezre okoljske spremenljivke proxyja. V Requests 2.34.2 send razreši privzete proxyje, kadar manjka imenovani argument proxies. Podajanje proxies={} v send preskoči prav to vejo razreševanja.

Prazen slovar, podan v merge_environment_settings, ima drugo vlogo: združevanje ga lahko napolni z veljavnimi potmi okolja pred predajo v send. Gledanje samo praznega slovarja v dveh primerih prezre različne metode, ki ga prejmejo.

V lastni kodi za gradnjo zahtev držite pripravo, združevanje okolja in pošiljanje skupaj. Ko aplikacija namerno uporablja trust_env=False, združevanje spoštuje to politiko; ne vsiljuje okolja odjemalcu, ki ga je zavestno izklopil.

Sorodni članki