Dê ao host selecionado um transporte proxy e ao restante do cliente um transporte direto explícito:

import httpx

direct = httpx.HTTPTransport(trust_env=False)
proxied = httpx.HTTPTransport(
    proxy="http://203.0.113.10:8080",
    trust_env=False,
)

with httpx.Client(
    transport=direct,
    mounts={"all://example.com": proxied},
    trust_env=False,
    timeout=15,
) as client:
    response = client.get("https://example.com/")
    print(response.status_code)

    other = client.get("https://example.org/")
    print(other.status_code)

Substitua o endereço de documentação pelo ponto HTTP desejado do serviço ou da lista de proxies HTTP. Aqui example.com usa o mount e example.org usa o padrão direto. As duas chamadas importam: sucesso apenas no host com proxy não verifica a rota de fallback.

Detalhe de correspondênciaEfeito
all://example.comO host exato em todos os esquemas de destino.
Um subdomínioUma escolha separada; use deliberadamente um curinga compatível se ele também precisar corresponder.
Um caminhoMounts selecionam padrões de esquema, host e porta opcional, não caminhos de URL.
Um redirecionamento para outro hostQuando seguir redirecionamentos está ativado, a nova URL é avaliada e pode usar o fallback direto.

O exemplo desativa a leitura do ambiente no cliente e nos dois transportes. Outra regra ampla de proxy ou mount correspondente pode mudar o resultado na adaptação. Se a implantação depende de configuração CA fornecida pelo ambiente, forneça essa confiança explicitamente ou mantenha a política adequada de descoberta, sem perdê-la silenciosamente.

Não é necessário alterar o proxy da máquina toda. Mantenha tanto o host previsto com proxy quanto um host de fallback escolhido de propósito nas verificações de rota.

Artigos relacionados