Jedan aiohttp zahtjev kroz HTTP proxy
Pošaljite aiohttp zahtjev kroz HTTP proxy bez autentifikacije, pregledajte status i završite unutar izričitog asinkronog životnog ciklusa.
Za jedan asinkroni zahtjev kroz HTTP proxy bez autentifikacije zadržite rutu na session.get(). Po potrebi dodajte aiohttp projektu:
uv add aiohttpZamijenite dokumentacijsku adresu ispod svojom HTTP točkom koja sluša ili kandidatom iz popisa HTTP proxyja. Mora dopuštati CONNECT do HTTPS odredišta; točka koja podržava samo SOCKS treba odgovarajući konektor umjesto ovog argumenta proxy.
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())
Zahtjev ispisuje HTTP status i prvih 200 znakova teksta odgovora. Odgovor 403 ili 429 ovdje ostaje dostupan za pregled; pozovite response.raise_for_status() ako aplikacija treba pretvarati neuspješne statuse u iznimke. Asinkroni upravitelji konteksta zatvaraju sesiju i odgovor po završetku blokova, uključujući slučaj iznimke.
Budžet total od 15 sekundi pokriva operaciju zahtjeva. Budžet connect od 5 sekundi uključuje čekanje na dostupnu vezu iz skupa, pa zauzet skup može potrošiti vrijeme prije otvaranja nove utičnice. To je važno pri prilagodbi jednog poziva za istodobne provjere.
trust_env=False čini prikazanu rutu izričitom. aiohttp prema zadanim postavkama ne pronalazi proxy varijable okruženja; izvoz jedne u drugom terminalu neće postaviti ovaj poziv. Odaberite trust_env=True samo kada naslijeđeno okruženje procesa predstavlja željenu politiku usmjeravanja.