പ്രാമാണീകരണമില്ലാത്ത 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 തിരഞ്ഞെടുക്കുക.

അനുബന്ധ ലേഖനങ്ങൾ