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 ত হেডাৰ প্ৰক্সি-নিৰ্দিষ্ট হোৱাটো গোপনীয়তাৰ নিশ্চয়তা নহয় যদি প্ৰক্সিয়ে ইয়াক আগলৈ পঠিয়ায়।