在使用aiohttp进行网络请求时,需要手动关闭客户端会话。否则,在并发请求或者请求结束后未关闭会话,会导致程序出现内存泄漏问题。下面给出一个示例代码:
import aiohttp
import asyncio
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'http://httpbin.org/get')
print(html)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close() # 关闭事件循环
在上面的代码中,我们手动创建了一个客户端会话,并在使用完成后关闭了该会话。这样可以避免内存泄漏的问题。