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 இல் தலைப்பு ப்ராக்ஸி-சார்பானது என்பது ப்ராக்ஸி அதை முன்னால் அனுப்பினால் ரகசியத்தன்மைக்கான உத்தரவாதம் அல்ல.