HTTP ප්රොක්සියක් හරහා එක් aiohttp ඉල්ලීමක්
සත්යාපනය නැති HTTP ප්රොක්සියකින් aiohttp ඉල්ලීමක් යවා තත්ත්වය පරීක්ෂා කර පැහැදිලි අසමමුහුර්ත ජීවන චක්රයක නිම කරන්න.
සත්යාපනය නැති HTTP ප්රොක්සියකින් එක් අසමමුහුර්ත ඉල්ලීමක් සඳහා මාර්ගය session.get() වෙත තබන්න. අවශ්ය නම් ව්යාපෘතියට aiohttp එක් කරන්න:
uv add aiohttpපහත ලේඛන ලිපිනය ඔබේ HTTP සවන්දෙන්නා හෝ HTTP ප්රොක්සි ලැයිස්තුවේ අපේක්ෂකයකු සමඟ මාරු කරන්න. එය HTTPS ගමනාන්තයට CONNECT ඉඩ දිය යුතුය; 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 තෝරන්න.