对于大多数应用程序,建议重用ClientSession,因为它可以在多个请求之间保持TCP连接和cookie等状态信息。但是,如果在不同的请求中使用不同的代理或SSL/TLS选项,则需要创建新的ClientSession。
示例代码:
import aiohttp
# 创建ClientSession
session = aiohttp.ClientSession()
async def fetch(url):
async with session.get(url) as response:
return await response.text()
# 重复使用ClientSession进行多个请求
result1 = await fetch('http://example.com')
result2 = await fetch('http://example.org')
# 当不同的代理或SSL/TLS选项需要使用时,创建新的ClientSession
async with aiohttp.ClientSession() as new_session:
async with new_session.get('http://example.com', proxy='http://myproxy.com') as response:
return await response.text()