ຄ່າ proxy ປົກກະຕິເຊັ່ນ http://proxy.example:8080 ແມ່ນ URL. clientFromString ຂອງ Twisted ຮັບຄຳອະທິບາຍ endpoint ເຊັ່ນ tcp:host=proxy.example:port=8080. ສອງສະຕຣິງອະທິບາຍຂໍ້ມູນທີ່ກ່ຽວຂ້ອງດ້ວຍໄວຍາກອນຕ່າງກັນ.

ຖ້າແອັບຯຮັບ URL proxy HTTP ປົກກະຕິ ໃຫ້ແຍກມັນກ່ອນສ້າງ endpoint:

import os
from urllib.parse import urlsplit
from twisted.internet.endpoints import HostnameEndpoint
from twisted.web.client import ProxyAgent

proxy = urlsplit(os.environ['http_proxy'])
if proxy.scheme != 'http' or not proxy.hostname:
    raise ValueError('Expected an HTTP proxy URL')
port = proxy.port if proxy.port is not None else 80
endpoint = HostnameEndpoint(reactor, proxy.hostname, port, timeout=5)
agent = ProxyAgent(endpoint, reactor=reactor)

ສ່ວນລະຫັດສົມມຸດວ່າແອັບຯມີ reactor ຂອງຕົນແລ້ວ. ລະບຸພອດ proxy ຕົວຈິງໃນການຕັ້ງຄ່າ ເມື່ອມັນບໍ່ແມ່ນຄ່າເລີ່ມຕົ້ນຂອງ URL HTTP. ລາຍຊື່ proxy HTTP ສະເໜີຜູ້ສະໝັກ endpoint ສຳລັບຄຳຮ້ອງ HTTP ສາທາລະນະທີ່ອະນຸຍາດໂດຍບໍ່ມີບັນຊີ proxy. HostnameEndpoint ຍັງຫຼີກລ່ຽງການຝັງຊື່ໂຮສໃນສະຕຣິງຕັ້ງຄ່າອື່ນທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດສອງຈຸດ.

ນີ້ແປງພຽງແຕ່ຂໍ້ມູນນຳເຂົ້າການເສັ້ນທາງ. ຂໍ້ມູນປະກອບທີ່ຝັງໃນ URL ບໍ່ໄດ້ກາຍເປັນຫົວຂໍ້ການອະນຸຍາດພຽງເພາະວ່າໂຮສ ແລະພອດຖືກແຍກ. ໃຫ້ການພິສູດຢືນຢັນ proxy ທີ່ຮອງຮັບຕາມທີ່ຕ້ອງການ ຜ່ານການຈັດການພິສູດຢືນຢັນຂອງຄຳຮ້ອງ. ສຳລັບປາຍທາງ HTTP ທຳມະດາ ແລະຕົວກາງທີ່ສະເໜີ Basic, ຫົວຂໍ້ຄຳຮ້ອງ Basic ຂອງ ProxyAgent ໃຫ້ການຈັດການດັ່ງກ່າວ.

URL proxy HTTPS ຕ້ອງການການເຊື່ອມຕໍ່ທີ່ຮອງຮັບ TLS ກັບ proxy. URL SOCKS ຕ້ອງການການເຈລະຈາ SOCKS. ທັງສອງບໍ່ໄດ້ຖືກຈັດຕັ້ງໂດຍການສົ່ງແຜນການເຫຼົ່ານັ້ນໄປຫາການແປງ endpoint HTTP ProxyAgent ທຳມະດາ.

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