http://proxy.example:8080 جیسی روایتی پراکسی قدر ایک URL ہے۔ Twisted کا clientFromString tcp:host=proxy.example:port=8080 جیسا اینڈ پوائنٹ کی تفصیل قبول کرتا ہے۔ دونوں سٹرنگیں متعلقہ معلومات مختلف گرامروں میں بیان کرتی ہیں۔

اگر ایپلیکیشن روایتی HTTP پراکسی URL قبول کرتی ہے تو اینڈ پوائنٹ بنانے سے پہلے اسے تقسیم کریں:

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 موجود ہے۔ جب پورٹ HTTP URL کا طے شدہ نہ ہو تو کنفیگریشن میں اصل پراکسی پورٹ بتائیں۔ HTTP پراکسی فہرست پراکسی اکاؤنٹ کے بغیر اجازت یافتہ عوامی HTTP درخواست کے لیے اینڈ پوائنٹ امیدوار فراہم کرتی ہے۔ HostnameEndpoint میزبان نام کو کسی دوسری کولن سے جدا کنفیگریشن سٹرنگ میں داخل کرنے سے بھی بچتا ہے۔

یہ صرف روٹنگ ان پٹ تبدیل کرتا ہے۔ URL میں شامل اسناد محض میزبان اور پورٹ تقسیم ہونے کی وجہ سے اجازت ہیڈر نہیں بنتیں۔ درکار معاون پراکسی توثیق درخواست کے توثیقی انتظام کے ذریعے فراہم کریں۔ سادہ HTTP منزل اور Basic پیش کرنے والے واسطے کے لیے، ProxyAgent کے Basic درخواست ہیڈر ایسا ہی ایک انتظام فراہم کرتے ہیں۔

HTTPS پراکسی URL کے لیے پراکسی سے TLS کے قابل رابطہ درکار ہے۔ SOCKS URL کے لیے SOCKS گفتگو درکار ہے۔ ان اسکیموں کو سادہ HTTP ProxyAgent اینڈ پوائنٹ تبدیلی میں بھیج کر دونوں میں سے کوئی بھی نافذ نہیں ہوتا۔

متعلقہ مضامین