Viena aiohttp užklausa per HTTP tarpinį serverį
Siųskite aiohttp užklausą per HTTP tarpinį serverį be autentifikavimo, patikrinkite būseną ir užbaikite aiškiai apibrėžtame asinchroniniame gyvavimo cikle.
Vienai asinchroninei užklausai per HTTP tarpinį serverį be autentifikavimo maršrutą laikykite ties session.get(). Jei reikia, pridėkite aiohttp į projektą:
uv add aiohttpToliau pateiktą dokumentacijos adresą pakeiskite savo HTTP klausymo tašku arba kandidatu iš HTTP tarpinių serverių sąrašo. Jis turi leisti CONNECT į HTTPS paskirties vietą; tik SOCKS palaikančiam galiniam taškui reikia tinkamo konektoriaus vietoje šio proxy argumento.
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())
Užklausa išveda HTTP būseną ir pirmus 200 atsako teksto simbolių. 403 arba 429 čia lieka atsakas, kurį galima peržiūrėti; kvieskite response.raise_for_status(), jei programa turi nesėkmingas būsenas paversti išimtimis. Asinchroniniai konteksto valdikliai uždaro sesiją ir atsaką pasibaigus jų blokams, taip pat išimties atveju.
15 sekundžių total biudžetas apima užklausos operaciją. 5 sekundžių connect biudžetas apima laukimą, kol telkinyje atsiras laisvas ryšys, todėl užimtas telkinys gali jį išnaudoti dar neatidarius naujo lizdo. Tai svarbu vieną kvietimą pritaikant lygiagrečioms patikroms.
trust_env=False išlaiko parodytą maršrutą aiškų. aiohttp pagal numatytąją nuostatą neaptinka tarpinio serverio aplinkos kintamųjų; kintamojo eksportavimas kitame terminale šio kvietimo nenustatys. trust_env=True rinkitės tik tada, kai proceso paveldėta aplinka yra numatyta maršrutizavimo politika.