ຄຳຂໍອາດໃຊ້ໄດ້ຜ່ານ session.get() ແຕ່ລົ້ມເຫຼວໃນການຢັ້ງຢືນໃບຮັບຮອງ ຫຼັງຂຽນໃໝ່ເປັນ PreparedRequest. ເສັ້ນທາງ send ລະດັບຕ່ຳບໍ່ເຮັດການລວມສະພາບແວດລ້ອມດຽວກັບວິທີ request ປົກກະຕິ.

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 ທີ່ຕັ້ງໃຈ. ການເລືອກພຣັອກຊີ ແລະ ການຂ້າມຂຶ້ນກັບປາຍທາງ, ດັ່ງນັ້ນຄ່າຂອງ URL ເກົ່າອາດຜິດສຳລັບຄຳຂໍທີ່ສົ່ງຈິງ.

ຄ່າ CA ມັກຖືກລືມ

ເມື່ອເປີດຄວາມເຊື່ອຖືສະພາບແວດລ້ອມປົກກະຕິ ແລະ ບໍ່ໄດ້ທັບການຢັ້ງຢືນຢ່າງຊັດເຈນ ການລວມພິຈາລະນາ REQUESTS_CA_BUNDLE ແລະ ຄ່າສຳຮອງ CURL_CA_BUNDLE. ການເອີ້ນ send ໂດຍກົງດ້ວຍ verify ເລີ່ມຕົ້ນບໍ່ຄົ້ນຫາ CA ນັ້ນ. ປິດການຢັ້ງຢືນພຽງແຕ່ປິດບັງຄວາມຕ່າງ ບໍ່ໄດ້ໃຫ້ຄັງໃບຮັບຮອງທີ່ຕ້ອງການ.

Session.prepare_request() ຍັງນຳໃຊ້ພຶດຕິກຳການກຽມຂອງເຊດຊັນ. ສ້າງຄຳຂໍໂດຍກົງດ້ວຍ Request.prepare() ເປັນທາງເລືອກອື່ນ; ຢ່າຄາດວ່າຈະນຳໃຊ້ຄຸກກີເຊດຊັນ ຫຼື ການກຽມອື່ນອັດຕະໂນມັດ.

ພຣັອກຊີມີກົດສະເພາະກວ່າ

ການກ່າວວ່າ PreparedRequest ທຸກອັນບໍ່ສົນໃຈຕົວປ່ຽນພຣັອກຊີແມ່ນບໍ່ຖືກ. ໃນ Requests 2.34.2, send ຈະຫາຄ່າພຣັອກຊີເລີ່ມຕົ້ນເມື່ອຂາດ argument ຊື່ proxies. ໃຫ້ proxies={} ກັບ send ຈະຂ້າມສາຂາຫາຄ່ານັ້ນໂດຍສະເພາະ.

Dictionary ວ່າງທີ່ໃຫ້ merge_environment_settings ມີໜ້າທີ່ຕ່າງກັນ: ການລວມສາມາດເຕີມເສັ້ນທາງຈາກສະພາບແວດລ້ອມກ່ອນສົ່ງໃຫ້ send. ເບິ່ງແຕ່ dictionary ວ່າງໃນໂຄດສອງອັນຈະພາດວິທີຮັບທີ່ບໍ່ຄືກັນ.

ໃນໂຄດສ້າງຄຳຂໍເອງ ໃຫ້ຮັກສາການກຽມ, ການລວມ ແລະ ການສົ່ງຢູ່ນຳກັນ. ເມື່ອແອັບໃຊ້ trust_env=False ໂດຍຕັ້ງໃຈ ການລວມຈະເຄົາລົບນະໂຍບາຍນັ້ນ; ບໍ່ໄດ້ບັງຄັບຄ່າໃສ່ໄຄລເອັນທີ່ປິດມັນເອງ.

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