Ha a session.proxies egy végpontra mutat, de a szkript a parancsértelmező proxyját használja, ugyanannak a szótárnak az újbóli hozzárendelése nem oldja fel az ütközést. A Requests a környezet proxybeállításait a Session alapértékei elé helyezve egyesítheti. Döntse el, hogy a Session továbbra is keressen-e beállításokat a környezetben.

Tartsa meg a környezetfelderítést, az útvonalat a kérésben adja meg

Adjon kifejezett értékeket az egyes hívásoknak, ahogyan a Requests javasolja a Session és a környezet ütközésének elkerülésére:

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

A helyi figyelőcímet cserélje a sajátjára. Nyilvános HTTP-végpontok összehasonlításakor válasszon a HTTP-proxyk listájából, a Session szabályát változatlanul hagyva. Ez a megadott leképezés bejegyzéseit szabályozza; tudatosan döntsön az alkalmazás más sémáiról és gazdagépeiről is. Egy szolgáltatás, IDE, konténer vagy CI-futtató a terminálétól eltérő környezetet örökölhet.

A Session kezelje saját beállításait

Ha az alkalmazásnak nem kell a környezetből proxykat felderítenie, a szabályt az első kérés előtt állítsa be:

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

A trust_env=False a környezethez kötött tanúsítványbeállításokat és az automatikus netrc-hitelesítést is befolyásolja. Választás előtt vegye figyelembe ezeket a függőségeket. Jóváhagyott magán CA-tanúsítványcsomaghoz kifejezett útvonalat adhat meg:

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

A valóban jóváhagyott csomagot használja, az ellenőrzést hagyja bekapcsolva. Útválasztási szabályonként tartson külön Sessiont ahelyett, hogy egyet módosít, miközben más munkák használják.

Ha egyik lehetőség sem magyarázza az alkalmazás útvonalát, azonos futtatókörnyezetben és ártalmatlan célon hasonlítson össze egy elszigetelt Sessiont az alkalmazással. Jegyezze fel a meglévő proxyváltozókat, a trust_env értékét és hogy a hívás átadja-e a proxies paramétert; hitelesítő adatot tartalmazó URL ne kerüljön megosztott naplóba. Az elszigetelt siker a Session létrehozására, adapterekre, előkészített kérések folyamataira vagy egyedi szállításokra irányítja a következő vizsgálatot. Egy curl-környezetteszt nem dönti el a Requests saját egyesítési viselkedését.

Kapcsolódó cikkek