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 એન્ડપોઇન્ટ રૂપાંતરણમાં મોકલીને બંનેમાંથી એક પણ અમલમાં મૂકવામાં આવતું નથી.

સંબંધિત લેખો