Bruk proxy= når eitt endepunkt skal handtere førespurnadene til klienten. Bruk mounts= når målskjema treng ulike ruter. Døma brukar desse HTTPX-grensesnitta; eit prosjekt med det eldre proxies=-API-et treng oppsett som passar versjonen.

Eitt endepunkt

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)

Byt det lokale lyttepunktet med ein køyrande HTTP-proxy. Ein kandidat frå lista over HTTP-proxyar må framleis testast mot målet ditt. Eit HTTPS-mål kan bruke dette http://-endepunktet gjennom CONNECT. Å endre skjemaet til https:// ber i staden om TLS til sjølve proxyen og krev støtte hos både klient og lyttepunkt.

Separate ruter etter målskjema

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)

Monteringsnøklar samsvarar med mål-URL-ar. HTTP-mål vel port 8080 her; HTTPS-mål port 8081. Proxyverdien skildrar lyttepunktet sin eigen protokoll, så HTTPS-monteringa kan rett innehalde ein http://-proxy. Set inn dine endepunkt og kontroller begge målskjemaa.

Begge oppskriftene set trust_env=False på klienten og, der dei vert oppgjevne, på transportane. Elles les HTTPX miljøvariablar for proxy og sertifikat som standard. Dersom utrullinga er avhengig av dei, la oppdaging vere på eller set opp naudsynte ruter og tillit uttrykkjeleg. Bruk TLS-kontekst og CA-oppsett som HTTPX-versjonen din støttar for privat tillit; la målverifiseringa vere på. Tillit til HTTPS-proxyen kan vere skild frå tillit til målet.

httpx.Timeout(15.0, connect=5.0) overstyrer tilkoplingstimeouten og gjev dei andre konfigurerte timeoutdelane standardverdien. Lesing, skriving og venting på tilkoplingspoolen har separate grenser; femten sekund er inga samla frist for medgått tid. Ein pooltimeout kan tyde at anna arbeid held dei tilgjengelege tilkoplingane. Lukk klientar og strøymande svar rett før du tolkar det som prov på at proxyen ikkje kan nåast.

Relaterte artiklar