SOCKS-reititys aiohttpissa aiohttp-socksin kanssa
Käytä yhteensopivaa SOCKS:n ymmärtävää konnektoria sen sijaan, että kopioisit vanhan aiohttp-välityspalveluesimerkin, josta konnektoriluokat on poistettu.
aiohttp dokumentoi HTTP-välityspalvelimen tuen pyyntöasetustensa kautta. SOCKS-päätepiste tarvitsee toteutuksen, joka puhuu SOCKS:ää. Välityspalvelimen URL-osoitteen portin vaihtaminen 1080:ksi ei tarjoa tätä toteutusta.
Käytä async-funktion sisällä konnektoria, jonka ylläpidetty aiohttp-socks-projekti tarjoaa:
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()Tämä olettaa, että konnektoripaketti on jo saatavilla ja yhteensopiva sovelluksen aiohttp-version kanssa. Päätepiste on havainnollistava; SOCKS5-välityspalvelinluettelo tarjoaa julkisia ehdokkaita konnektorin URL-osoitteelle. Määritä aikakatkaisu- ja vastauskokokäytäntö todelliselle työkuormalle.
Vanhat vastaukset viittaavat eri paketteihin ja konnektorien nimiin: aiosocks, aiosocksy ja aiohttp-socks eivät ole keskenään vaihdettavia tuontipolkuja. Lue sen paketin vaatimukset ja esimerkki, jota todella käytetään. Yhden projektin luokan yhdistäminen toisen projektin argumentteihin voi epäonnistua ennen kuin välityspalvelinyhteyttä edes yritetään.
Pidä konnektori ja istunnon elinikä yhdessä ja tarkista isäntänimien ratkaisun käyttäytyminen siellä, missä sillä on merkitystä. SOCKS-URL-osoitteen välittäminen asiaankuulumattomaan HTTP-välityspalvelinasetukseen ei korvaa konnektorin dokumentoitua reittiä.