ជ្រើសផ្លូវប្រូកស៊ី HTTPX ដោយ proxy និង mounts
ប្រើ proxy និងការភ្ជាប់ transport របស់ HTTPX ជាមួយគ្រោងការណ៍ត្រឹមត្រូវ ឥរិយាបថបរិស្ថានច្បាស់ និងដែនកំណត់តភ្ជាប់និងអានដាច់ដោយឡែក។
ប្រើ proxy= ពេលចំណុចចុងមួយត្រូវគ្រប់គ្រងសំណើកម្មវិធីភ្ញៀវ។ ប្រើ mounts= ពេលគ្រោងការណ៍គោលដៅត្រូវការផ្លូវខុសគ្នា។ ឧទាហរណ៍ប្រើចំណុចប្រទាក់ HTTPX ទាំងនេះ។ គម្រោងដែលប្រើ API ចាស់ proxies= ត្រូវកំណត់ឱ្យស្របនឹងកំណែនោះ។
ចំណុចចុងមួយ
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។ តម្លៃប្រូកស៊ីពិពណ៌នាពិធីការរបស់កម្មវិធីស្តាប់ផ្ទាល់ ដូច្នេះ mount HTTPS អាចមានប្រូកស៊ី http:// បានត្រឹមត្រូវ។ ដាក់ចំណុចចុងអ្នក ហើយពិនិត្យគ្រោងការណ៍គោលដៅទាំងពីរ។
វិធីទាំងពីរកំណត់ trust_env=False លើកម្មវិធីភ្ញៀវ និងលើ transport នៅពេលផ្តល់វា។ បើមិនដូច្នោះ HTTPX អានអថេរបរិស្ថានប្រូកស៊ីនិងវិញ្ញាបនបត្រតាមលំនាំដើម។ បើការដាក់ប្រើពឹងផ្អែកលើវា សូមបើកការរកឃើញ ឬកំណត់ផ្លូវនិងការទុកចិត្តឱ្យច្បាស់។ សម្រាប់ការទុកចិត្តឯកជន ប្រើ TLS context និងការកំណត់ CA ដែលកំណែ HTTPX អ្នកគាំទ្រ ហើយបើកការផ្ទៀងផ្ទាត់គោលដៅ។ ការទុកចិត្តប្រូកស៊ី HTTPS អាចដាច់ពីការទុកចិត្តគោលដៅ។
httpx.Timeout(15.0, connect=5.0) ជំនួសពេលផុតកំណត់ការតភ្ជាប់ ហើយផ្តល់តម្លៃលំនាំដើមដល់ផ្នែកកំណត់ផ្សេងទៀត។ ការអាន សរសេរ និងរង់ចាំ pool មានដែនកំណត់ដាច់ៗ។ ដប់ប្រាំវិនាទីមិនមែនជាកំណត់ពេលសរុបនៃពេលវេលាពិតដែលកន្លងទេ។ Pool timeout អាចមានន័យថាការងារផ្សេងកាន់កាប់ការតភ្ជាប់ដែលមាន។ បិទកម្មវិធីភ្ញៀវនិងចម្លើយ streaming ឱ្យត្រឹមត្រូវ មុនចាត់ទុកថាជាភស្តុតាងថាប្រូកស៊ីទៅមិនដល់។