HTTP ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಒಂದು aiohttp ವಿನಂತಿ
ದೃಢೀಕರಣವಿಲ್ಲದ HTTP ಪ್ರಾಕ್ಸಿಯಿಂದ aiohttp ವಿನಂತಿ ಕಳುಹಿಸಿ, ಸ್ಥಿತಿ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಸ್ಪಷ್ಟ ಅಸಿಂಕ್ರೊನಸ್ ಜೀವನಚಕ್ರದಲ್ಲಿ ಮುಗಿಸಿ.
ದೃಢೀಕರಣವಿಲ್ಲದ 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 ಆಯ್ಕೆ ಮಾಡಿ.