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:// პროქსის შემცველობა. ჩასვით თქვენი წერტილები და შეამოწმეთ ორივე დანიშნულების სქემა.
ორივე ვარიანტი კლიენტზე და, სადაც ისინი გადაცემულია, transport-ებზე trust_env=False-ს აყენებს. სხვაგვარად HTTPX ნაგულისხმევად კითხულობს პროქსისა და სერტიფიკატების გარემოს ცვლადებს. თუ განთავსება მათ ეყრდნობა, აღმოჩენა ჩართული დატოვეთ ან საჭირო მარშრუტები და ნდობა მკაფიოდ დააყენეთ. კერძო ნდობისთვის გამოიყენეთ თქვენი HTTPX ვერსიის მხარდაჭერილი TLS კონტექსტი და CA პარამეტრები; დანიშნულების შემოწმება ჩართული დატოვეთ. HTTPS პროქსის ნდობა დანიშნულების ნდობისგან შეიძლება ცალკე იყოს.
httpx.Timeout(15.0, connect=5.0) დაკავშირების დროის ლიმიტს ცვლის და სხვა დაყენებულ კომპონენტებს ნაგულისხმევ მნიშვნელობას აძლევს. კითხვას, წერასა და pool-ის ლოდინს ცალკე ლიმიტები აქვს; თხუთმეტი წამი რეალურად გასული დროის საერთო ვადა არ არის. Pool-ის დროის ამოწურვა შეიძლება ნიშნავდეს, რომ სხვა სამუშაო ხელმისაწვდომ კავშირებს იკავებს. სწორად დახურეთ კლიენტები და ნაკადური პასუხები, სანამ ამას პროქსის მიუწვდომლობის მტკიცებულებად ჩათვლით.