Se session.proxies montras unu finpunkton sed la skripto uzas la prokurilon de la ŝelo, reasigni la saman vortaron ne solvos la konflikton. Requests povas kunfandi mediajn prokurilagordojn kun prioritato super la defaŭltoj de Session. Elektu ĉu Session daŭre malkovru agordojn el la medio.

Konservu median malkovron, donu vojojn en la peto

Transdonu eksplicitajn valorojn al la individua voko, kiel Requests rekomendas por eviti tiun konflikton inter Session kaj medio:

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

with requests.Session() as session:
    response = session.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()

Anstataŭigu la lokan aŭskultanton per via propra. Se vi komparas publikajn HTTP-finpunktojn, elektu kandidatojn el la listo de HTTP-prokuriloj sen ŝanĝi la politikon de Session. Tio regas la donitajn maperojn; faru konscian elekton ankaŭ pri aliaj skemoj aŭ gastigantoj uzataj de la aplikaĵo. Servo, IDE, kontenero aŭ CI-ruligilo povas heredi alian medion ol via terminalo.

Lasu Session regi siajn proprajn agordojn

Se la aplikaĵo ne malkovru prokurilojn el sia medio, difinu la politikon antaŭ la unua peto:

with requests.Session() as session:
    session.trust_env = False
    session.proxies = {
        "http": "http://127.0.0.1:8080",
        "https": "http://127.0.0.1:8080",
    }
    response = session.get(
        "https://example.com/",
        timeout=(5, 15),
    )
    response.raise_for_status()

trust_env=False ankaŭ influas medirilatan atestilagordon kaj aŭtomatan netrc-aŭtentikigon. Konsideru tiujn dependecojn antaŭ ol elekti ĝin. Por aprobita privata CA-atestilaro vi povas doni eksplicitan vojon:

response = session.get(
    "https://example.com/",
    timeout=(5, 15),
    verify="/path/to/approved-ca-bundle.pem",
)

Uzu la efektive aprobitan atestilaron kaj lasu kontroladon ŝaltita. Konservu apartan Session por ĉiu enkursiga politiko anstataŭ ŝanĝi unu dum aliaj taskoj uzas ĝin.

Se neniu alternativo klarigas la vojon de la aplikaĵo, komparu izolitan Session kun la aplikaĵo en la sama rultempa medio kaj kun la sama sendanĝera celo. Registru la ĉeestantajn prokurilvariablojn, la valoron de trust_env kaj ĉu la voko transdonas proxies; ekskludu URL-ojn kun akreditaĵoj el komunaj protokoloj. Izolita sukceso direktas la sekvan esploron al konstruado de Session, adaptiloj, fluoj de preparitaj petoj aŭ propraj transportoj. Media testo per curl ne determinas la propran kunfandan konduton de Requests.

Rilataj artikoloj