HTTPX-proxyroutes kiezen met proxy en mounts
Gebruik proxy en transportmounts in HTTPX met het juiste eindpuntschema, expliciet omgevingsgedrag en aparte verbindings- en leeslimieten.
Gebruik proxy= als één eindpunt de verzoeken van de client moet afhandelen. Gebruik mounts= als bestemmingsschema’s verschillende routes nodig hebben. Deze voorbeelden gebruiken die HTTPX-interfaces; een project met de oudere proxies=-API heeft configuratie voor die versie nodig.
Eén eindpunt
import httpx
timeout = httpx.Timeout(15.0, connect=5.0)
with httpx.Client(
proxy="http://127.0.0.1:8080",
trust_env=False,
timeout=timeout,
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Vervang de lokale luisteraansluiting door een draaiende HTTP-proxy. Ook een kandidaat uit de lijst met HTTP-proxy’s moet je tegen jouw bestemming testen. Een HTTPS-doel kan dit http://-eindpunt via CONNECT gebruiken. Het schema veranderen in https:// vraagt TLS naar de proxy zelf, wat zowel client als luisteraansluiting moeten ondersteunen.
Routes scheiden op bestemmingsschema
import httpx
mounts = {
"http://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8080",
trust_env=False,
),
"https://": httpx.HTTPTransport(
proxy="http://127.0.0.1:8081",
trust_env=False,
),
}
with httpx.Client(
mounts=mounts,
trust_env=False,
timeout=httpx.Timeout(15.0, connect=5.0),
) as client:
response = client.get("https://example.com/")
response.raise_for_status()
print(response.status_code)
Mountsleutels passen op doel-URL’s. HTTP-doelen kiezen hier poort 8080; HTTPS-doelen poort 8081. De proxywaarde beschrijft het protocol van de luisteraansluiting zelf, dus de HTTPS-mount kan terecht een http://-proxy bevatten. Vul je eindpunten in en controleer beide bestemmingsschema’s.
Beide recepten zetten trust_env=False op de client en, waar meegegeven, op de transports. Anders leest HTTPX standaard proxy- en certificaatomgevingsvariabelen. Als de uitrol daarop steunt, laat detectie aan of stel de vereiste routes en het vertrouwen expliciet in. Gebruik voor eigen vertrouwen de TLS-context en CA-configuratie van jouw HTTPX-versie; laat doelverificatie aan. Vertrouwen in de HTTPS-proxy kan losstaan van vertrouwen in de bestemming.
httpx.Timeout(15.0, connect=5.0) overschrijft de verbindingstime-out en geeft de overige ingestelde time-outcomponenten de standaardwaarde. Lezen, schrijven en wachten op de pool hebben aparte limieten; vijftien seconden zijn geen totale deadline voor de verstreken tijd. Een pooltime-out kan betekenen dat ander werk beschikbare verbindingen vasthoudt. Sluit clients en streamingresponses correct voordat je dat als bewijs voor een onbereikbare proxy ziet.