HTTPX прокси жолдорун proxy жана mounts менен тандоо
HTTPX proxy жана transport туташууларын туура схема, ачык чөйрө жүрүмү жана өзүнчө туташуу/окуу убакыт чектери менен колдонуңуз.
Бир акыркы чекит кардардын сурамдарын иштетиши керек болсо proxy= колдонуңуз. Көздөгөн схемаларга ар башка жол керек болсо mounts= колдонуңуз. Мисалдар ушул HTTPX интерфейстерин колдонот; эски proxies= API'и бар долбоорго өз версиясына туура жөндөө керек.
Бир акыркы чекит
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)
Жергиликтүү угуучуну иштеп жаткан HTTP проксиге алмаштырыңыз. HTTP проксилердин тизмесиндеги талапкер да көздөгөн жериңиз менен текшерилиши керек. HTTPS максаты бул http:// чекитин CONNECT аркылуу колдоно алат. Схеманы https:// кылуу проксинин өзүнө TLS сурайт; муну угуучу да, кардар да колдошу керек.
Көздөгөн схемага жараша өзүнчө жолдор
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)
Mount ачкычтары максаттуу URL'дерге туура келет. HTTP максаттары бул жерде 8080, HTTPS максаттары 8081 портун тандайт. Прокси мааниси угуучунун өз протоколун сүрөттөйт, ошондуктан HTTPS mount ичинде http:// прокси туура боло алат. Өз чекиттериңизди коюп, эки схеманы тең текшериңиз.
Эки ыкма кардарда жана берилген transport'тордо trust_env=False орнотот. Болбосо HTTPX прокси жана сертификат чөйрө өзгөрмөлөрүн демейкиде окуйт. Жайгаштыруу аларга таянса, табууну күйгүзүп калтырыңыз же керектүү жолдор менен ишенимди ачык жөндөңүз. Жеке ишеним үчүн HTTPX версияңыз колдогон TLS контекстин жана CA жөндөөсүн колдонуңуз; максат текшерүүсүн күйгүзүп калтырыңыз. HTTPS прокси ишеними көздөгөн жердин ишениминен өзүнчө болушу мүмкүн.
httpx.Timeout(15.0, connect=5.0) туташуу убакыт чегин алмаштырып, башка жөндөлгөн бөлүктөргө демейки маанини берет. Окуу, жазуу жана pool күтүү чектери өзүнчө; он беш секунд жалпы өткөн чыныгы убакыттын акыркы чеги эмес. Pool timeout башка иш жеткиликтүү туташууларды кармап турганын билдириши мүмкүн. Прокси жетпейт деген далил катары кароодон мурун кардарларды жана агымдуу жоопторду туура жабыңыз.