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 ਐਂਡਪੌਇੰਟ ਬਦਲਾਅ ਵਿੱਚ ਭੇਜ ਕੇ ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਲਾਗੂ ਨਹੀਂ ਹੁੰਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ