Kui session.proxies osutab ühele lõpp-punktile, kuid skript kasutab kesta puhverserverit, ei lahenda sama sõnastiku uuesti määramine vastuolu. Requests võib ühendada keskkonna puhverserveriseaded Sessioni vaikeväärtustest kõrgema eelisõigusega. Otsusta, kas Session peab jätkuvalt seadeid keskkonnast avastama.

Säilita keskkonna avastamine, anna marsruudid päringuga

Anna selgesõnalised väärtused üksikule kutsele, nagu Requests soovitab selle Sessioni ja keskkonna vastuolu vältimiseks:

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()

Asenda kohalik kuulaja enda omaga. Avalike HTTP-lõpp-punktide võrdlemisel vali kandidaadid HTTP-puhverserverite loendist ning hoia Sessioni poliitika samana. See juhib antud vastenduse kirjeid; tee teadlik valik ka teiste skeemide või hostide jaoks, mida rakendus kasutab. Teenus, IDE, konteiner või CI-käivitaja võib pärida terminalist erineva keskkonna.

Lase Sessionil oma seadeid juhtida

Kui rakendus ei peaks puhverservereid keskkonnast avastama, määra poliitika enne esimest päringut:

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 mõjutab ka keskkonnaga seotud sertifikaadiseadistust ja automaatset netrc-autentimist. Arvesta neid sõltuvusi enne valimist. Heakskiidetud privaatse CA-sertifikaadipaki jaoks saad anda selgesõnalise tee:

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

Kasuta tegelikult heakskiidetud pakki ja jäta kontrollimine sisse. Hoia igale marsruutimispoliitikale eraldi Session, selle asemel et muuta ühte ajal, mil teised tööd seda kasutavad.

Kui kumbki võimalus rakenduse teed ei selgita, võrdle isoleeritud Sessionit rakendusega samas käituskeskkonnas ja sama ohutu sihtkohaga. Märgi üles olemasolevad puhverserverimuutujad, trust_env väärtus ja see, kas kutse annab proxies; jäta mandaate sisaldavad URL-id jagatud logidest välja. Isoleeritud edu suunab järgmise kontrolli Sessioni loomisele, adapteritele, ettevalmistatud päringute voogudele või kohandatud transpordile. curliga tehtud keskkonnatest ei määra Requestsi enda ühendamiskäitumist.

Seotud artiklid