Eskaera batek session.get() bidez funtzionatu eta PreparedRequest gisa berridaztean ziurtagiri-egiaztapenean huts egin dezake. Maila baxuko send bideak ez du ohiko request metodoaren ingurune-batze bera egiten.

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)

Egin batzea prestatutako azken URLarekin, aurreikusitako URL-aldaketen ondoren. Proxy eta saihesbide erabakiak helmugaren araberakoak dira; aurreko URL baterako jasotako ezarpenak okerrak izan daitezke bidaltzen duzun eskaerarako.

CA ezarpena erraz ahazten da

Ingurunearen ohiko konfiantza aktibo dagoenean, batzeak REQUESTS_CA_BUNDLE eta haren ordezko CURL_CA_BUNDLE hartzen ditu kontuan, egiaztapena esplizituki gainidatzi ez bada. send zuzenean deitzeak lehenetsitako verify ezarpenarekin ez du CA bilaketa hori egiten. Egiaztapena itzaltzeak aldea ezkutatzen du, nahi den ziurtagiri-biltegia eman ordez.

Session.prepare_request() metodoak saioaren prestaketa-portaera ere aplikatzen du. Eskaera Request.prepare() bidez zuzenean sortzea aukera bereizia da; ez espero saio-cookieak edo beste saio-prestaketa automatikoki aplikatzea.

Proxyek arau zehatzagoa dute

Ez litzateke zuzena PreparedRequest guztiek proxy-ingurune-aldagaiak baztertzen dituztela esatea. Requests 2.34.2-n send-ek proxy lehenetsiak ebazten ditu proxies gako-hitz argumentua falta denean. send-i proxies={} emateak adar zehatz hori saltatzen du.

merge_environment_settings-i emandako hiztegi hutsak beste eginkizun bat du: batzeak ingurune-bide egokiekin bete dezake send-i eman aurretik. Bi zatietan hiztegi huts bat ikusteak bakarrik hura jasotzen duten metodo desberdinak ezkutatzen ditu.

Eskaerak eraikitzeko kode propioan, mantendu prestaketa, ingurune-batzea eta bidalketa elkarrekin. Aplikazioak nahita trust_env=False erabiltzen badu, batzeak politika hori errespetatzen du; ez dio ingurunea inposatzen hura berariaz desgaitu duen bezeroari.

Erlazionatutako artikuluak