ବିନା ପ୍ରମାଣୀକରଣ 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 ବାଛନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ