ສຳລັບຫົວຂໍ້ທີ່ຜູ້ດຳເນີນການພຣັອກຊີກຳນົດ, Requests ໃຫ້ HTTPAdapter.proxy_headers ເປັນຈຸດຂຽນທັບ:

from urllib.parse import urlsplit
import requests
from requests.adapters import HTTPAdapter

class TaggedProxy(HTTPAdapter):
    def proxy_headers(self, proxy):
        headers = super().proxy_headers(proxy)
        endpoint = urlsplit(proxy)
        if (endpoint.scheme == 'http'
                and endpoint.hostname == 'proxy.example'
                and endpoint.port == 8080):
            headers['X-Proxy-Account'] = 'department-a'
        return headers

with requests.Session() as session:
    adapter = TaggedProxy()
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    response = session.get(
        'https://service.example/data',
        proxies={'https': 'http://proxy.example:8080'},
        timeout=15,
    )

X-Proxy-Account ເປັນຕົວຢ່າງຂອງຟິວທີ່ພຣັອກຊີສະເພາະນີ້ເຂົ້າໃຈ, ບໍ່ແມ່ນວິທີມາດຕະຖານໃນການຢືນຢັນກັບທຸກຕົວກາງ.

ເລີ່ມຈາກ super().proxy_headers(proxy). Requests ໃຊ້ວິທີນັ້ນເພື່ອສ້າງ Proxy-Authorization ເມື່ອ URL ໃຫ້ບັນຊີ Basic. ການປ່ຽນຜົນລວມທັງໝົດອາດເຮັດໃຫ້ພຶດຕິກຳນັ້ນຫາຍໄປ.

ອາດາປເຕີສົ່ງຄ່າເຫຼົ່ານີ້ໄປຍັງ ProxyManager ຂອງ urllib3. ໃນອຸໂມງ HTTPS ພວກມັນໄປກັບ CONNECT. ການແມັບຫົວຂໍ້ຄຳຂໍປົກກະຕິອະທິບາຍຄຳຂໍປາຍທາງທີ່ມາຫຼັງ.

ຜູ້ຈັດການພຣັອກຊີຖືກເກັບໄວ້ຕາມ URL ພຣັອກຊີ. ຢ່າຖືວ່າຕະຂໍ້ນີ້ເປັນການເອີ້ນກັບທີ່ບໍ່ເກັບໄວ້ສຳລັບແຕ່ລະຄຳຂໍທຸລະກິດສຳລັບຄ່າທີ່ຕ້ອງປ່ຽນທຸກຄັ້ງທີ່ເອີ້ນ. ເລືອກຄວາມເປັນເຈົ້າຂອງການຂົນສົ່ງໃຫ້ສອດຄ່ອງເມື່ອເຄື່ອງໝາຍບັນຊີປ່ຽນ.

ໃນການສົ່ງຕໍ່ HTTP ທຳມະດາ, ຟິວພຣັອກຊີຍັງຕ້ອງການນະໂຍບາຍການໃຊ້ທີ່ຕົວກາງຕັ້ງໃຈໄວ້. ການທີ່ຫົວຂໍ້ເປັນສະເພາະພຣັອກຊີໃນ API ຂອງລູກຄ້າບໍ່ແມ່ນການຮັບປະກັນຄວາມລັບຖ້າພຣັອກຊີສົ່ງມັນຕໍ່.

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