Kailangan ng isang website ng ibang proxy kaysa sa iba pa mong kahilingang HTTPS. Maaaring ipahayag ng Requests ang pagpiling iyon sa mismong diksyunaryo ng proxy:

routes = {
    "https://reports.example": "http://reports-proxy.example:8080",
    "https": "http://default-proxy.example:8080",
}
response = requests.get(
    "https://reports.example/monthly",
    proxies=routes,
    timeout=(5, 20),
)
response.raise_for_status()

Para sa destinasyong iyon, nananalo ang key na partikular sa hostname. Gumagamit ang ibang hostname ng HTTPS ng entry para sa buong scheme. Inilalarawan ng mga value ang koneksyon ng proxy, kaya ang destinasyong HTTPS ay maaaring tumugma nang tama sa isang URL ng proxy na HTTP. Kapag ang mga ito ay pinapayagang ruta ng pampublikong site na walang account sa proxy, ang listahan ng proxy na HTTP ay makapagbibigay ng mga kandidato para sa mga value na iyon; panatilihing malinaw ang bawat tuntunin ng destinasyon.

Itugma ang hostname, hindi ang URL ng resource

Sa Requests 2.32.5, binubuo ang partikular na key mula sa scheme ng destinasyon at sa na-parse na hostname. Wala itong path, query, o port.

Ang pagdaragdag ng /monthly sa key ng diksyunaryo ay hindi maglilimita sa tuntunin sa path na iyon. Gayundin, ang https://reports.example:8443 ay hindi key na partikular sa port na kinikilala ng tagapili na ito. Nalalapat din ang tuntunin ng hostname kapag gumagamit ng ibang port ang URL ng destinasyon.

Walang pagpapalawak ng wildcard sa paghahanap na ito. Ang tuntunin para sa reports.example ay hindi awtomatikong sumasaklaw sa isang subdomain. Gumamit ng malinaw na desisyon sa routing sa labas ng simpleng diksyunaryong ito kapag kailangan ng patakaran ang pagtutugma ng path, port, o suffix.

Alamin kung aling fallback ang susunod

Sinusuri ng implementasyon ang mga key sa ayos na ito: scheme://hostname, scheme, all://hostname, pagkatapos ay all. Kaya ang entry ng HTTPS para sa buong scheme ay nauuna sa entry ng hostname para sa lahat ng scheme. Ilagay muna ang tuntunin ng hostname na partikular sa scheme sa iyong disenyo kapag iyon ang sinasadyang eksepsiyon.

Isaalang-alang din kung paano pinagsasama ng iyong Session ang mga default at setting na nagmula sa kapaligiran. Ang pagpasa ng dalawang malinaw na entry na ito kasama ng kahilingan ay naglilinaw sa kanilang sinasadyang ruta, ngunit hindi nagtatakda ng patakaran para sa anumang ibang scheme ng destinasyon.

Ang isang redirect ay maaaring magdala ng ibang hostname, at may kaugnayan din ang pagpili ng proxy para sa bagong destinasyong iyon. Basahin ang tuntunin bilang desisyon tungkol sa bawat URL na hinihiling, hindi bilang permanenteng rutang nakakabit sa unang pahina.

Kaugnay na mga artikulo