Requests-ന്റെ HTTPAdapter.proxy_headers ഉപയോഗിച്ച് പ്രോക്സി ഹെഡറുകൾ സജ്ജമാക്കുക
പ്രോക്സി നിർവചിക്കുന്ന ഒരു ഫീൽഡിനായി HTTPAdapter.proxy_headers വിപുലീകരിച്ച് Requests-ന്റെ നിലവിലുള്ള പ്രോക്സി-പ്രാമാണീകരണ ഹെഡർ നിർമ്മാണം നിലനിർത്തുക.
പ്രോക്സി ഓപ്പറേറ്റർ നിർവചിക്കുന്ന ഹെഡറിനായി 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) ഉപയോഗിച്ച് തുടങ്ങുക. URL Basic അക്കൗണ്ട് നൽകുമ്പോൾ Requests ആ രീതി ഉപയോഗിച്ച് Proxy-Authorization നിർമ്മിക്കുന്നു. മുഴുവൻ ഫലവും മാറ്റിസ്ഥാപിക്കുന്നത് ആ സ്വഭാവം നഷ്ടപ്പെടുത്തിയേക്കാം.
അഡാപ്റ്റർ ഈ മൂല്യങ്ങൾ urllib3-ന്റെ ProxyManager എന്നതിലേക്ക് കൈമാറുന്നു. HTTPS ടണലിൽ അവ CONNECT-നൊപ്പം പോകുന്നു. സാധാരണ അഭ്യർത്ഥന ഹെഡർ മാപ്പിംഗ് പിന്നീടുള്ള ലക്ഷ്യ അഭ്യർത്ഥന വിവരിക്കുന്നു.
പ്രോക്സി മാനേജർമാർ പ്രോക്സി URL അനുസരിച്ച് കാഷെ ചെയ്യുന്നു. ഓരോ കോളിലും മാറേണ്ട മൂല്യത്തിനായി ഈ ഹുക്കിനെ കാഷെ ചെയ്യാത്ത ഓരോ ബിസിനസ് അഭ്യർത്ഥനയുടെയും കോൾബാക്കായി കാണരുത്. അക്കൗണ്ട് മാർക്കർ മാറുമ്പോൾ അതനുസരിച്ച് ട്രാൻസ്പോർട്ട് ഉടമസ്ഥത തിരഞ്ഞെടുക്കുക.
ലളിതമായ HTTP ഫോർവേഡിംഗിൽ പ്രോക്സി ഫീൽഡുകൾക്ക് ഇടനിലക്കാരൻ ഉദ്ദേശിക്കുന്ന ഉപഭോഗ നയം ഇപ്പോഴും ആവശ്യമാണ്. ക്ലയന്റ് API-യിൽ ഹെഡർ പ്രോക്സി-നിർദ്ദിഷ്ടമായിരിക്കുന്നത് പ്രോക്സി അത് മുന്നോട്ട് അയച്ചാൽ രഹസ്യതയുടെ ഉറപ്പല്ല.