ದೃಢೀಕರಣವಿಲ್ಲದ 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 ಆಯ್ಕೆ ಮಾಡಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು