ប្រើ 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 ឱ្យត្រឹមត្រូវ មុនចាត់ទុកថាជាភស្តុតាងថាប្រូកស៊ីទៅមិនដល់។

អត្ថបទពាក់ព័ន្ធ