ພຣັອກຊີ Session ໃນ Python Requests ແລະບຸລິມະສິດສະພາບແວດລ້ອມ
ເຮັດໃຫ້ທາງ Python Requests ຄາດເດົາໄດ້ເມື່ອ session.proxies ຕົວແປສະພາບແວດລ້ອມ ຄ່າຄຳຂໍ ແລະ trust_env ເຮັດວຽກຮ່ວມກັນ.
ຖ້າ 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. ນີ້ຄວບຄຸມລາຍການໃນແມັບທີ່ໃຫ້; ຈົ່ງເລືອກໂດຍຕັ້ງໃຈສຳລັບສະຄີມຫຼືໂຮສອື່ນທີ່ແອັບໃຊ້. ບໍລິການ IDE ຄອນເທນເນີ ຫຼື CI runner ອາດຮັບສະພາບແວດລ້ອມຕ່າງຈາກເທີມິນັລ.
ໃຫ້ 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 ເອງ.