Request သည် session.get() မှ အလုပ်လုပ်သော်လည်း PreparedRequest အဖြစ်ပြန်ရေးပြီးနောက် certificate verification တွင် ကျနိုင်သည်။ အောက်ခြေ send လမ်းက ပုံမှန် request method နှင့်တူသော environment merge ကို မလုပ်ပါ။

import requests

with requests.Session() as session:
    request = requests.Request("GET", "https://example.com/")
    prepared = session.prepare_request(request)

    settings = session.merge_environment_settings(
        prepared.url, {}, None, None, None
    )
    response = session.send(
        prepared,
        timeout=(5, 15),
        **settings,
    )
    response.raise_for_status()
    print(response.status_code)

ရည်ရွယ်သည့် URL ပြောင်းပြီးနောက် အပြီးသတ်ပြင်ထားသော URL ဖြင့် merge လုပ်ပါ။ Proxy နှင့် bypass ဆုံးဖြတ်ချက်က ဦးတည်ရာအပေါ် မူတည်သဖြင့် ယခင် URL မှဆက်တင်သည် တကယ်ပို့မည့် request အတွက် မှားနိုင်သည်။

CA ဆက်တင်ကို လွယ်လင့်တကူ လွတ်နိုင်သည်

ပုံမှန် environment trust ဖွင့်ထားပြီး verification ကို အတိအလင်း override မလုပ်လျှင် merge က REQUESTS_CA_BUNDLE နှင့် အရန် CURL_CA_BUNDLE ကို ထည့်စဉ်းစားသည်။ မူလ verify ဖြင့် send ကို တိုက်ရိုက်ခေါ်လျှင် ထို CA ရှာဖွေမှု မလုပ်ပါ။ Verification ပိတ်ခြင်းက ရည်ရွယ်သော certificate store ပေးမည့်အစား ကွာခြားချက်ကို ဖုံးသည်။

Session.prepare_request() သည် session ၏ပြင်ဆင်မှုလုပ်ရပ်ကိုလည်း သုံးသည်။ Request.prepare() ဖြင့် request တိုက်ရိုက်ဖန်တီးခြင်းသည် သီးခြားရွေးချယ်မှုဖြစ်သည်။ Session cookies သို့မဟုတ် အခြား session ပြင်ဆင်မှု အလိုအလျောက်သုံးမည် မမျှော်လင့်ပါနှင့်။

Proxy အတွက် ပိုတိကျသောစည်းမျဉ်းရှိသည်

PreparedRequest တိုင်းက proxy environment variables ကို လျစ်လျူရှုသည်ဟု ဆိုခြင်း မမှန်ပါ။ Requests 2.34.2 တွင် proxies keyword argument မပါလျှင် send က proxy မူလတန်ဖိုးများကို ရှာသည်။ send ကို proxies={} ပေးခြင်းက ထိုမူလတန်ဖိုးရှာသည့် branch ကိုသာ ကျော်သည်။

merge_environment_settings သို့ပေးသည့် dictionary အလွတ်၏တာဝန်က မတူပါ။ Merge က send သို့မပို့မီ သက်ဆိုင်သော environment route များကို ဖြည့်နိုင်သည်။ Code နှစ်ခုထဲရှိ dictionary အလွတ်ကိုသာ ကြည့်လျှင် မတူသောလက်ခံ method များကို လွတ်နိုင်သည်။

ကိုယ်ပိုင် request တည်ဆောက်ရေး code တွင် ပြင်ဆင်ခြင်း၊ environment merge နှင့်ပို့ခြင်းကို အတူထားပါ။ အက်ပ်က trust_env=False ကို ရည်ရွယ်ပြီးသုံးလျှင် merge သည် ထိုမူဝါဒကို လိုက်နာသည်။ Environment ကို တမင်ပိတ်ထားသည့် client သို့ ဆက်တင် အတင်းမထည့်ပါ။

ဆက်စပ်ဆောင်းပါးများ