Talba aiohttp waħda permezz ta’ proxy HTTP
Agħmel talba aiohttp permezz ta’ proxy HTTP mingħajr awtentikazzjoni, iċċekkja l-istatus u temm f’ċiklu tal-ħajja asinkroniku espliċitu.
Għal talba asinkronika waħda permezz ta’ proxy HTTP mingħajr awtentikazzjoni, żomm ir-rotta fuq session.get(). Żid aiohttp mal-proġett jekk meħtieġ:
uv add aiohttpIbdel l-indirizz tad-dokumentazzjoni hawn taħt bil-listener HTTP tiegħek jew kandidat mil-lista ta’ proxies HTTP. Irid jippermetti CONNECT lejn id-destinazzjoni HTTPS; endpoint li jappoġġja SOCKS biss jeħtieġ konnettur xieraq minflok dan l-argument 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())
It-talba tistampa l-istatus HTTP tagħha u l-ewwel 200 karattru tat-test tar-rispons. 403 jew 429 jibqa’ rispons li tista’ tispezzjona hawn; sejjaħ response.raise_for_status() jekk l-app għandha tbiddel status mhux ta’ suċċess f’eċċezzjonijiet. Il-maniġers tal-kuntest asinkroniċi jagħlqu s-sessjoni u r-rispons meta jispiċċaw il-blokki tagħhom, anki b’eċċezzjoni.
Il-baġit total ta’ 15-il sekonda jkopri l-operazzjoni tat-talba. Il-baġit connect ta’ 5 sekondi jinkludi l-istennija għal konnessjoni disponibbli fil-pool, għalhekk pool okkupat jista’ jużah qabel jinfetaħ socket ġdid. Id-distinzjoni hija importanti meta tadatta s-sejħa waħda għal kontrolli konkorrenti.
trust_env=False iżomm ir-rotta murija espliċita. aiohttp ma jiskoprix varjabbli tal-ambjent tal-proxy awtomatikament; l-esportazzjoni ta’ waħda f’terminal ieħor ma tikkonfigurax din is-sejħa. Agħżel trust_env=True biss meta l-ambjent li wiret il-proċess ikun il-politika tar-routing maħsuba.