איין aiohttp־בקשה דורך אַן HTTP־פּראָקסי
שיקט אַן aiohttp־בקשה דורך אַן HTTP־פּראָקסי אָן באַשטעטיקונג, קוקט אויף איר סטאַטוס און פֿאַרענדיקט אין אַן אויסדריקלעכן אַסינכראָנישן לעבן־ציקל.
פֿאַר איין אַסינכראָנישע בקשה דורך אַן HTTP־פּראָקסי אָן באַשטעטיקונג, האַלט די רוטע בײַ session.get(). לייגט aiohttp צום פּראָיעקט אויב נייטיק:
uv add aiohttpבײַט דעם דאָקומענטאַציע־אַדרעס אונטן מיט אײַער HTTP־הערפּונקט אָדער אַ קאַנדידאַט פֿון דער ליסטע פֿון HTTP־פּראָקסיס. ער מוז דערלויבן CONNECT צום HTTPS־ציל; אַן ענדפּונקט וואָס שטיצט בלויז SOCKS דאַרף אַ פּאַסיקן קאָנעקטאָר אַנשטאָט דעם 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())
די בקשה דרוקט אַרויס איר HTTP־סטאַטוס און די ערשטע 200 צייכנס פֿונעם ענטפֿערטעקסט. אַ 403 אָדער 429 בלײַבט דאָ אַן ענטפֿער וואָס מע קען קאָנטראָלירן; רופֿט response.raise_for_status() אויב די אַפּליקאַציע דאַרף פֿאַרוואַנדלען אומדערפֿאָלגרײַכע סטאַטוסן אין אויסנאַמען. די אַסינכראָנישע קאָנטעקסט־פֿאַרוואַלטער פֿאַרמאַכן די סעסיע און דעם ענטפֿער ווען זייערע בלאָקן ענדיקן זיך, אויך בײַ אַן אויסנאַם.
דער 15־סעקונדעס total־בודזשעט דעקט די בקשה־אָפּעראַציע. דער 5־סעקונדעס connect־בודזשעט נעמט אַרײַן וואַרטן אויף אַ פֿאַראַנענע פּול־פֿאַרבינדונג, אַזוי אַז אַ פֿאַרנומענער פּול קען אים פֿאַרנוצן איידער אַ נײַער סאָקעט עפֿנט זיך. דער אונטערשייד איז וויכטיק בײַם צופּאַסן דעם איינציקן רוף צו גלײַכצײַטיקע קאָנטראָלן.
trust_env=False האַלט די געוויזענע רוטע אויסדריקלעך. aiohttp אַנטדעקט נישט פּראָקסי־סביבה־וואַריאַבלען ווי אַ סטאַנדאַרד; עקספּאָרטירן איינע אין אַן אַנדער טערמינאַל וועט דעם רוף נישט אײַנשטעלן. קלײַבט trust_env=True נאָר ווען די געירשנטע סביבה פֿונעם פּראָצעס איז די געמיינטע רוטיר־פּאָליטיק.