aiohttp eskaera bat HTTP proxy baten bidez
Egin autentifikaziorik gabeko HTTP proxy eskaera aiohttp-rekin, aztertu egoera eta amaitu bizi-ziklo asinkrono esplizitu batean.
Autentifikaziorik gabeko HTTP proxy baten bidez eskaera asinkrono bakarra egiteko, mantendu bidea session.get()-en. Gehitu aiohttp proiektuari behar bada:
uv add aiohttpOrdeztu 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.