அங்கீகாரமில்லாத 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 தேர்ந்தெடுக்கவும்.

தொடர்புடைய கட்டுரைகள்