Se session.proxies apunta a un punto final pero o script usa o proxy do intérprete de ordes, volver asignar o mesmo dicionario non resolverá o conflito. Requests pode combinar a configuración do proxy do ambiente con prioridade sobre os valores predeterminados de Session. Decide se Session debe seguir descubrindo a configuración do ambiente.

Conserva o descubrimento do ambiente e indica rutas na petición

Pasa valores explícitos a cada chamada, como recomenda Requests para evitar este conflito entre Session e ambiente:

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

Substitúe o punto de escoita local polo teu. Se comparas puntos HTTP públicos, escolle candidatos da lista de proxys HTTP mantendo fixa a política de Session. Isto controla as entradas do mapeamento proporcionado; decide deliberadamente tamén para outros esquemas ou hosts da aplicación. Un servizo, IDE, contedor ou executor CI pode herdar un ambiente diferente do terminal.

Fai que Session controle a súa configuración

Se a aplicación non debe descubrir proxys do ambiente, establece a política antes da primeira petición:

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 tamén afecta a configuración de certificados ligada ao ambiente e a autenticación netrc automática. Considera esas dependencias antes de escollelo. Para un conxunto privado aprobado de certificados CA podes pasar unha ruta explícita:

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

Usa o conxunto realmente aprobado e mantén a verificación activa. Conserva unha Session independente por cada política de encamiñamento en lugar de modificar unha mentres outros traballos a utilizan.

Se ningunha alternativa explica a ruta da aplicación, compara unha Session illada coa aplicación no mesmo ambiente de execución e cun destino inocuo. Anota as variables de proxy presentes, o valor de trust_env e se a chamada pasa proxies; exclúe os URL con credenciais dos rexistros compartidos. O éxito illado orienta a seguinte inspección cara á creación de Session, adaptadores, fluxos de peticións preparadas ou transportes personalizados. Unha proba do ambiente con curl non determina o comportamento de combinación propio de Requests.

Artigos relacionados