Autentifikaziorik gabeko HTTP proxy baten bidez eskaera asinkrono bakarra egiteko, mantendu bidea session.get()-en. Gehitu aiohttp proiektuari behar bada:

uv add aiohttp

Ordeztu beheko dokumentazio-helbidea zure HTTP entzulearekin edo HTTP proxyen zerrendako hautagai batekin. HTTPS helmugara CONNECT onartu behar du; SOCKS soilik onartzen duen amaiera-puntuak konektore egokia behar du proxy argumentu honen ordez.

import asyncio
import aiohttp

async def main():
    timeout = aiohttp.ClientTimeout(total=15, connect=5)
    async with aiohttp.ClientSession(
        timeout=timeout,
        trust_env=False,
    ) as session:
        async with session.get(
            "https://example.com/",
            proxy="http://203.0.113.10:8080",
        ) as response:
            print(response.status)
            print((await response.text())[:200])

asyncio.run(main())

Eskaerak HTTP egoera eta erantzun-testuaren lehen 200 karaktereak erakusten ditu. 403 edo 429 hemen azter daitekeen erantzuna da oraindik; deitu response.raise_for_status()-ri aplikazioak arrakastarik gabeko egoerak salbuespen bihurtu behar baditu. Testuinguru-kudeatzaile asinkronoek saioa eta erantzuna ixten dituzte blokeak amaitzean, baita salbuespenarekin ere.

15 segundoko total aurrekontuak eskaeraren eragiketa hartzen du. 5 segundoko connect aurrekontuak multzoko konexio librearen zain egotea ere hartzen du; beraz, multzo okupatuak agor dezake socket berria ireki aurretik. Bereizketa garrantzitsua da dei bakarra aldibereko egiaztapenetara egokitzean.

trust_env=False-k erakutsitako bidea esplizitu mantentzen du. aiohttp-k ez ditu lehenespenez proxy ingurune-aldagaiak aurkitzen; beste terminal batean bat esportatzeak ez du dei hau konfiguratzen. Hautatu trust_env=True prozesuak heredatutako ingurunea aurreikusitako bideratze-politika denean bakarrik.

Erlazionatutako artikuluak