Enviar apenas um host por um proxy HTTPX
Monte um transporte proxy para um host selecionado mantendo direta a rota normal de fallback do cliente.
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ência | Efeito |
|---|---|
all://example.com | O host exato em todos os esquemas de destino. |
| Um subdomínio | Uma escolha separada; use deliberadamente um curinga compatível se ele também precisar corresponder. |
| Um caminho | Mounts selecionam padrões de esquema, host e porta opcional, não caminhos de URL. |
| Um redirecionamento para outro host | Quando 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.