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)
Կցման բանալիները համապատասխանում են թիրախային URL-ներին։ HTTP թիրախներն այստեղ ընտրում են 8080 պորտը, իսկ HTTPS-ը՝ 8081։ Պրոքսիի արժեքը նկարագրում է լսող հանգույցի սեփական արձանագրությունը, ուստի HTTPS կցումը կարող է ճիշտ ներառել http:// պրոքսի։ Մուտքագրեք ձեր վերջնակետերն ու ստուգեք երկու նպատակային սխեմաները։
Երկու եղանակներն էլ trust_env=False են սահմանում հաճախորդի և տրամադրված transport-ների վրա։ Այլապես HTTPX-ը լռելյայն կարդում է պրոքսիի և վկայագրերի միջավայրի փոփոխականները։ Եթե տեղակայումը կախված է դրանցից, հայտնաբերումը միացված թողեք կամ հստակ սահմանեք ուղիներն ու վստահությունը։ Մասնավոր վստահության համար օգտագործեք ձեր HTTPX տարբերակի աջակցած TLS համատեքստն ու CA կարգավորումը․ նպատակակետի ստուգումը միացված թողեք։ HTTPS պրոքսիի վստահությունը կարող է առանձին լինել նպատակակետից։
httpx.Timeout(15.0, connect=5.0)-ը փոխարինում է միացման սպասման սահմանը և մյուս կարգավորված բաղադրիչներին տալիս լռելյայն արժեքը։ Ընթերցումը, գրանցումը և pool-ին սպասելը առանձին սահմաններ ունեն․ տասնհինգ վայրկյանը իրական անցած ժամանակի ընդհանուր վերջնաժամկետ չէ։ Pool-ի ժամանակի սպառումը կարող է նշանակել, որ այլ աշխատանքը զբաղեցնում է հասանելի միացումները։ Ճիշտ փակեք հաճախորդներն ու հոսքային պատասխանները՝ նախքան դա պրոքսիի անհասանելիության ապացույց համարելը։