Foar ien asyngroan fersyk troch in HTTP-proxy sûnder autentikaasje, hâld de rûte op session.get(). Foegje aiohttp sa nedich oan it projekt ta:

uv add aiohttp

Ferfang it dokumintaasjeadres hjirûnder troch dyn HTTP-harkpunt of in kandidaat út de list mei HTTP-proxy’s. It moat CONNECT nei de HTTPS-bestimming tastean; in einpunt mei allinnich SOCKS hat in passende connector nedich ynstee fan dit proxy-argumint.

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

It fersyk print syn HTTP-status en de earste 200 tekens fan de antwurdtekst. In 403 of 429 bliuwt hjir in antwurd datst besjen kinst; rop response.raise_for_status() oan as de applikaasje mislearre statuskoades yn útsûnderingen feroarje moat. De asyngroane kontekstbehearders slute de sesje en it antwurd as harren blokken einigje, ek by in útsûndering.

It total-budzjet fan 15 sekonden dekt de fersykoperaasje. It connect-budzjet fan 5 sekonden omfettet it wachtsjen op in beskikbere ferbining út de pool, dat in drokke pool kin it opbrûke foar’t in nije socket iepengiet. Dat ûnderskied docht der ta as it inkele oanroppen ta tagelyk útfierde kontrôles oanpast wurdt.

trust_env=False hâldt de toande rûte eksplisyt. aiohttp fynt proxy-omjouwingsfariabelen net standert; ien eksportearje yn in oare terminal stelt dizze oanrop net yn. Kies trust_env=True allinnich as de erve omjouwing fan it proses it bedoelde rûtearringsbelied is.

Relatearre artikelen