Requests PreparedRequest eta falta diren ingurune-ezarpenak
Mantendu prestatutako eskaera propioak Requestsen ohiko proxy eta CA kudeaketarekin bat, maila baxuko send guztiek proxya baztertzen dutela suposatu gabe.
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.