ເມື່ອມີ Requests ໃນໂຄງການແລ້ວ ໃຫ້ສົ່ງ mapping ຂອງ proxy ເຂົ້າໃນການເອີ້ນ:

import requests

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

response = requests.get(
    "https://example.com/",
    proxies=proxies,
    timeout=(5, 15),
)
response.raise_for_status()
print(response.status_code)

ແທນ endpoint loopback ດ້ວຍ proxy ທີ່ກຳລັງເຮັດວຽກ ຫຼືຕົວເລືອກຈາກລາຍຊື່ HTTP proxy ທີ່ຈະທົດສອບດ້ວຍຄຳຂໍນີ້. key ລະບຸ scheme ຂອງປາຍທາງ: http ສຳລັບ HTTP URL ແລະ https ສຳລັບ HTTPS URL. value ລະບຸ listener ຂອງ proxy. ພວກມັນອາດເປັນ endpoint ທີ່ຕ່າງກັນ ຖ້າເຄືອຂ່າຍຕ້ອງການເສັ້ນທາງແຍກກັນ.

ການໃສ່ value proxy ເປັນ http:// ພາຍໃຕ້ key https ແມ່ນຕັ້ງໃຈ. Requests ຂໍອຸໂມງ CONNECT ຈາກ HTTP listener ແລ້ວສ້າງ TLS ໄປຫາປາຍທາງຜ່ານອຸໂມງນັ້ນ ພາຍໃຕ້ນະໂຍບາຍປາຍທາງແລະ port ຂອງ proxy. ການປ່ຽນ value ເປັນ https:// ແມ່ນຂໍTLS ໄປຫາຕົວ proxy ເອງ; ອາດລົ້ມເຫຼວຖ້າ listener ຄາດວ່າຈະໄດ້ HTTP ທີ່ບໍ່ເຂົ້າລະຫັດ.

ຕົວເລກ timeout ສອງຄ່າໝາຍເຖິງຫຍັງ

timeout=(5, 15) ກຳນົດ timeout ຂອງການເຊື່ອມຕໍ່ແລະການອ່ານ. ມັນບໍ່ໄດ້ບັງຄັບໃຫ້ເວລາລວມຈຳກັດຢູ່ສິບຫ້າວິນາທີ. ຂໍ້ມູນທີ່ເຂົ້າມາເປັນໄລຍະ, ຫຼາຍທີ່ຢູ່ ແລະການພະຍາຍາມເຊື່ອມຕໍ່ ອາດເຮັດໃຫ້ເວລາທີ່ຜ່ານໄປຍາວຂຶ້ນ. Requests ບໍ່ມີ timeout ທົ່ວໄປເມື່ອບໍ່ໃສ່ຄ່ານີ້. ດັ່ງນັ້ນ ໃຫ້ເລືອກຂີດຈຳກັດທີ່ເໝາະກັບຄຳຕອບ ແລະເພີ່ມເວລາສິ້ນສຸດໃນລະດັບແອັບ ຖ້າວຽກຕ້ອງການຂີດຈຳກັດເວລາລວມທີ່ເຂັ້ມງວດ.

ຈັດການຄວາມລົ້ມເຫຼວໃນຂັ້ນຕອນທີ່ມັນເກີດຂຶ້ນ

try:
    response = requests.get(
        "https://example.com/",
        proxies=proxies,
        timeout=(5, 15),
    )
    response.raise_for_status()
except requests.exceptions.ProxyError as error:
    print("Proxy setup failed:", type(error).__name__)
except requests.exceptions.Timeout:
    print("A configured timeout expired")
except requests.exceptions.HTTPError as error:
    print("HTTP status:", error.response.status_code)

CONNECT ທີ່ຖືກປະຕິເສດອາດເຮັດໃຫ້ເກີດ ProxyError ກ່ອນມີຄຳຕອບຈາກປາຍທາງ. ສາຂາ HTTPError ເກີດຫຼັງໄດ້ຮັບຄຳຕອບທີ່ມີສະຖານະຜິດພາດ; Timeout ໝາຍວ່າຂີດຈຳກັດທີ່ຕັ້ງໄວ້ໝົດເວລາແລ້ວ. ກວດສອບຕ່ອງໂສ້ exception ຂອງການຕັ້ງການເຊື່ອມຕໍ່ພາຍໃນເຄື່ອງ ແລະລຶບ endpoint ທີ່ມີຂໍ້ມູນຢືນຢັນຕົວຕົນກັບ URL ສ່ວນຕົວ ກ່ອນແບ່ງປັນ.

ເປີດການຢືນຢັນໃບຮັບຮອງໄວ້. ຖ້າເຄືອຂ່າຍທີ່ໄດ້ຮັບອະນຸຍາດໃຊ້ CA ສ່ວນຕົວ ຫຼືການດັກກວດທີ່ມີການຈັດການ ໃຫ້ສະໜອງຂໍ້ມູນຄວາມເຊື່ອຖືທີ່ຄາດໄວ້ ແທນການປິດການຢືນຢັນ.

ລາຍການທີ່ລະບຸຊັດຕໍ່ແຕ່ລະຄຳຂໍຄວບຄຸມເສັ້ນທາງທີ່ໃຫ້ໄວ້ນີ້ ແຕ່ scheme ທີ່ບໍ່ໄດ້ລະບຸຍັງອາດໄດ້ຮັບຜົນຈາກການຄົ້ນຫາ proxy ໃນ environment. ເມື່ອຍ້າຍການເອີ້ນໄປ Session ທີ່ໃຊ້ຊ້ຳໄດ້ ໃຫ້ຕັດສິນວ່າ environment variable, ຄ່າເລີ່ມຕົ້ນຂອງ Session ແລະຄ່າທົດແທນຕໍ່ຄຳຂໍຄວນເຮັດວຽກຮ່ວມກັນແນວໃດ; ການໃຊ້ການເຊື່ອມຕໍ່ຊ້ຳແລະນະໂຍບາຍເສັ້ນທາງເປັນຄົນລະທາງເລືອກ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ