aiohttp mendokumentasikan dukungan proxy HTTP melalui opsi permintaannya. Endpoint SOCKS memerlukan implementasi yang berbicara SOCKS. Mengubah port URL proxy menjadi 1080 tidak menyediakan implementasi tersebut.

Di dalam fungsi async, gunakan konektor yang disediakan proyek aiohttp-socks yang dipelihara:

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()

Ini mengasumsikan paket konektor sudah tersedia dan kompatibel dengan versi aiohttp di aplikasi. Endpoint bersifat ilustratif; daftar proxy SOCKS5 menawarkan kandidat publik untuk URL konektor. Konfigurasikan kebijakan batas waktu dan ukuran respons untuk beban kerja sebenarnya.

Jawaban lama merujuk pada berbagai paket dan nama konektor: aiosocks, aiosocksy, dan aiohttp-socks bukan jalur impor yang dapat dipertukarkan. Baca persyaratan dan contoh untuk paket yang benar-benar digunakan. Menggabungkan kelas dari satu proyek dengan argumen proyek lain dapat gagal sebelum koneksi proxy apa pun dicoba.

Jaga konektor dan masa hidup sesi tetap bersama, dan periksa perilaku resolusi nama host di tempat yang penting. Meneruskan URL SOCKS ke opsi proxy HTTP yang tidak terkait bukan pengganti rute terdokumentasi konektor.

Artikel terkait