សំណើ 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() បើកម្មវិធីត្រូវបំលែងស្ថានភាពមិនជោគជ័យទៅជាករណីលើកលែង។ អ្នកគ្រប់គ្រងបរិបទអសមកាលបិទសម័យ និងចម្លើយពេលប្លុកបញ្ចប់ រួមទាំងពេលមានករណីលើកលែង។
ថវិកា total 15 វិនាទីគ្របដណ្តប់ប្រតិបត្តិការសំណើ។ ថវិកា connect 5 វិនាទីរួមបញ្ចូលការរង់ចាំការតភ្ជាប់ទំនេរក្នុង pool ដូច្នេះ pool រវល់អាចប្រើអស់មុនបើក socket ថ្មី។ ភាពខុសគ្នានេះសំខាន់ពេលកែការហៅតែមួយទៅជាការពិនិត្យព្រមគ្នា។
trust_env=False រក្សាផ្លូវក្នុងឧទាហរណ៍ឱ្យច្បាស់។ aiohttp មិនរកអថេរបរិស្ថានប្រូកស៊ីតាមលំនាំដើមទេ; ការនាំចេញមួយក្នុង terminal ផ្សេងមិនកំណត់ការហៅនេះទេ។ ជ្រើស trust_env=True តែនៅពេលបរិស្ថានដែលដំណើរការទទួលមរតកជាគោលការណ៍កំណត់ផ្លូវដែលចង់បាន។