aiohttp 是一个基于 asyncio 协程库实现的 HTTP 客户端和服务器库。它的设计理念是异步非阻塞的,能够提高并发性能,但需要正确使用才能发挥其优势。
下面是一个使用 aiohttp 发送异步 GET 请求的示例代码:
import asyncio
import aiohttp
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://example.com')
print(html)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
可以看出,这里使用了 async/await 关键字,表明这是一个基于协程的异步程序。aiohttp 库中的各种 HTTP 方法都是异步的,例如:get、put、post、options 等。
总之,aiohttp 真正是异步的,但要注意正确使用异步编程的理念和技巧。