ያለ ማረጋገጥ በ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 ይምረጡ የሂደቱ የወረሰው አካባቢ የታሰበው የመንገድ ምሪት ፖሊሲ ሲሆን ብቻ።

ተዛማጅ ጽሑፎች