aiohttp dokumenterer HTTP-proxyunderstøttelse gennem sine anmodningsindstillinger. Et SOCKS-endepunkt kræver en implementering, der taler SOCKS. At ændre en proxy-URLs port til 1080 leverer ikke den implementering.

Inde i en async-funktion skal du bruge den connector, som det vedligeholdte aiohttp-socks-projekt leverer:

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

Dette forudsætter, at connector-pakken allerede er tilgængelig og kompatibel med aiohttp-versionen i applikationen. Endepunktet er illustrativt; SOCKS5-proxylisten tilbyder offentlige kandidater til connector-URL'en. Konfigurer politik for timeout og svinstørrelse til den faktiske belastning.

Gamle svar henviser til forskellige pakker og connector-navne: aiosocks, aiosocksy og aiohttp-socks er ikke udskiftelige importstier. Læs kravene og eksemplet for den pakke, der faktisk bruges. At kombinere ét projekts klasse med et andet projekts argumenter kan fejle, før der overhovedet gøres forsøg på en proxyforbindelse.

Hold connector og sessionens levetid sammen, og kontroller værtsnavnsopløsning, hvor det er vigtigt. At sende en SOCKS-URL til en urelateret HTTP-proxyindstilling er ikke en erstatning for connectorens dokumenterede rute.

Relaterede artikler