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 ไม่ใช่เส้นทางการนำเข้าที่ใช้แทนกันได้ อ่านข้อกำหนดและตัวอย่างของแพ็กเกจที่ใช้จริง การรวมคลาสของโครงการหนึ่งกับอาร์กิวเมนต์ของอีกโครงการอาจล้มเหลวก่อนที่จะพยายามเชื่อมต่อพร็อกซีใด ๆ

เก็บตัวเชื่อมต่อและอายุของเซสชันไว้ด้วยกัน และตรวจสอบพฤติกรรมการแปลงชื่อโฮสต์ในจุดที่สำคัญ การส่ง URL ของ SOCKS ไปยังตัวเลือกพร็อกซี HTTP ที่ไม่เกี่ยวข้องไม่ใช่สิ่งทดแทนเส้นทางที่จัดทำเอกสารไว้ของตัวเชื่อมต่อ

บทความที่เกี่ยวข้อง