aiohttp-socks के साथ aiohttp में SOCKS राउटिंग
हटाए गए कनेक्टर क्लास वाले पुराने aiohttp प्रॉक्सी उदाहरण की नकल करने के बजाय SOCKS-समर्थित संगत कनेक्टर का उपयोग करें।
aiohttp अपने अनुरोध विकल्पों के माध्यम से HTTP प्रॉक्सी समर्थन का दस्तावेज़ीकरण करता है। SOCKS एंडपॉइंट को ऐसे कार्यान्वयन की आवश्यकता है जो SOCKS बोलता हो। प्रॉक्सी URL का पोर्ट 1080 करना वह कार्यान्वयन नहीं देता।
async फ़ंक्शन के अंदर, अनुरक्षित aiohttp-socks प्रोजेक्ट द्वारा दिए गए कनेक्टर का उपयोग करें:
import aiohttp
from aiohttp_socks import ProxyConnector
connector = ProxyConnector.from_url('socks5://203.0.113.10:1080')
async with aiohttp.ClientSession(connector=connector) as session:
async with session.get('https://example.com/') as response:
body = await response.read()यह मानता है कि कनेक्टर पैकेज पहले से उपलब्ध है और एप्लिकेशन में aiohttp संस्करण के साथ संगत है। एंडपॉइंट उदाहरणमात्र है; SOCKS5 प्रॉक्सी सूची कनेक्टर URL के लिए सार्वजनिक उम्मीदवार देती है। वास्तविक कार्यभार के लिए टाइमआउट और प्रतिक्रिया-आकार नीति कॉन्फ़िगर करें।
पुराने उत्तर अलग-अलग पैकेजों और कनेक्टर नामों का उल्लेख करते हैं: aiosocks, aiosocksy और aiohttp-socks परस्पर विनिमेय आयात पथ नहीं हैं। वास्तव में उपयोग किए जा रहे पैकेज की आवश्यकताएँ और उदाहरण पढ़ें। एक प्रोजेक्ट की क्लास को दूसरे प्रोजेक्ट के आर्गुमेंट के साथ मिलाना किसी भी प्रॉक्सी कनेक्शन का प्रयास होने से पहले विफल हो सकता है।
कनेक्टर और सत्र के जीवनकाल को साथ रखें, और जहाँ महत्वपूर्ण हो वहाँ होस्टनाम-विश्लेषण व्यवहार जाँचें। SOCKS URL को असंबंधित HTTP प्रॉक्सी विकल्प में देना कनेक्टर के दस्तावेज़ीकृत मार्ग का विकल्प नहीं है।