Donnez à l’hôte choisi un transport proxy et au reste du client un transport direct explicite :

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)

Remplacez l’adresse documentaire par le point HTTP voulu de votre service ou de la liste de proxys HTTP. Ici, example.com utilise le montage et example.org le défaut direct. Les deux appels comptent : le succès du seul hôte proxifié ne vérifie pas la route de repli.

Détail de correspondanceEffet
all://example.comL’hôte exact, quels que soient les schémas de destination.
Un sous-domaineUn choix distinct ; utilisez volontairement un joker pris en charge s’il doit aussi correspondre.
Un cheminLes montages sélectionnent des motifs de schéma, d’hôte et de port facultatif, pas les chemins d’URL.
Une redirection vers un autre hôteQuand le suivi des redirections est activé, la nouvelle URL est évaluée et peut utiliser le repli direct.

L’exemple désactive la lecture de l’environnement sur le client et les deux transports. Une autre règle proxy large ou un montage correspondant peut changer le résultat lors de l’adaptation. Si le déploiement dépend d’une configuration CA fournie par l’environnement, fournissez cette confiance explicitement ou conservez la politique de découverte appropriée plutôt que la perdre silencieusement.

Aucune modification du proxy à l’échelle de la machine n’est nécessaire. Incluez dans vos contrôles de route l’hôte prévu via proxy et un hôte de repli choisi délibérément.

Articles similaires