បើ session.proxies ចង្អុលទៅចំណុចចុងមួយ តែស្គ្រីបប្រើប្រូកស៊ីរបស់ shell ការផ្តល់វចនានុក្រមដដែលឡើងវិញមិនដោះស្រាយទំនាស់ទេ។ Requests អាចរួមបញ្ចូលការកំណត់ប្រូកស៊ីបរិស្ថានដោយអាទិភាពលើលំនាំដើម Session។ ជ្រើសថា Session គួរបន្តរកការកំណត់ពីបរិស្ថានឬទេ។

រក្សាការស្វែងរកបរិស្ថាន ផ្តល់ផ្លូវក្នុងសំណើ

ផ្ញើតម្លៃច្បាស់លាស់ទៅការហៅនីមួយៗ ដូច Requests ណែនាំដើម្បីជៀសទំនាស់ Session/បរិស្ថាននេះ៖

proxies = {
    "http": "http://127.0.0.1:8080",
    "https": "http://127.0.0.1:8080",
}

with requests.Session() as session:
    response = session.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()

ជំនួសអ្នកស្តាប់ក្នុងម៉ាស៊ីនដោយរបស់អ្នក។ បើប្រៀបធៀបចំណុច HTTP សាធារណៈ ជ្រើសពីបញ្ជីប្រូកស៊ី HTTP ដោយរក្សាគោលការណ៍ Session ដដែល។ នេះគ្រប់គ្រងធាតុផ្គូផ្គងដែលបានផ្តល់; ត្រូវជ្រើសដោយចេតនាសម្រាប់ scheme ឬ host ផ្សេងដែលកម្មវិធីប្រើផង។ សេវា IDE កុងតឺន័រ ឬអ្នករត់ CI អាចទទួលបរិស្ថានខុសពី terminal។

ឱ្យ Session គ្រប់គ្រងការកំណត់របស់ខ្លួន

បើកម្មវិធីមិនគួររកប្រូកស៊ីពីបរិស្ថាន កំណត់គោលការណ៍មុនសំណើដំបូង៖

with requests.Session() as session:
    session.trust_env = False
    session.proxies = {
        "http": "http://127.0.0.1:8080",
        "https": "http://127.0.0.1:8080",
    }
    response = session.get(
        "https://example.com/",
        timeout=(5, 15),
    )
    response.raise_for_status()

trust_env=False ក៏ប៉ះពាល់ការកំណត់វិញ្ញាបនបត្រទាក់ទងបរិស្ថាន និងការផ្ទៀងផ្ទាត់ netrc ស្វ័យប្រវត្តិ។ ពិចារណាការពឹងផ្អែកទាំងនេះមុនជ្រើស។ សម្រាប់កញ្ចប់ CA ឯកជនដែលអនុម័ត អាចផ្តល់ផ្លូវច្បាស់លាស់៖

response = session.get(
    "https://example.com/",
    timeout=(5, 15),
    verify="/path/to/approved-ca-bundle.pem",
)

ប្រើកញ្ចប់ដែលអនុម័តពិត និងបើកការផ្ទៀងផ្ទាត់។ ទុក Session ដាច់ដោយឡែកសម្រាប់គោលការណ៍ផ្លូវនីមួយៗ ជំនួសការកែតែមួយពេលការងារផ្សេងប្រើវា។

បើជម្រើសទាំងពីរមិនពន្យល់ផ្លូវកម្មវិធី ប្រៀបធៀប Session ដាច់ដោយឡែកនឹងកម្មវិធីក្នុងបរិស្ថានរត់និងគោលដៅមិនបង្កគ្រោះថ្នាក់ដូចគ្នា។ កត់អថេរប្រូកស៊ីមានស្រាប់ តម្លៃ trust_env និងថាការហៅផ្ញើ proxies ឬទេ; កុំដាក់ URL មានព័ត៌មានចូលប្រើក្នុងកំណត់ហេតុចែករំលែក។ ជោគជ័យពេលដាច់ដោយឡែកនាំការពិនិត្យបន្ទាប់ទៅការបង្កើត Session អាដាប់ទ័រ លំហូរសំណើដែលត្រៀមរួច ឬមធ្យោបាយដឹកជញ្ជូនផ្ទាល់ខ្លួន។ តេស្តបរិស្ថាន curl មិនកំណត់ឥរិយាបថរួមបញ្ចូលរបស់ Requests ផ្ទាល់ទេ។

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