📅  最后修改于: 2023-12-03 14:39:03.512000             🧑  作者: Mango
aiohttp 是一个支持异步 HTTP 客户端和服务器的 Python 库。它可以用于编写高性能的 Web 应用程序和客户端。
aiohttp 使用 asyncio 库实现异步操作。因此,在使用 aiohttp 时,必须熟悉 asyncio 的基础知识,如 event loop 和协程。
使用 pip 安装 aiohttp:
pip install aiohttp
以下是使用 aiohttp 发送 GET 请求的示例:
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, 'https://www.google.com')
print(html)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
此示例创建了一个异步 HTTP 客户端会话,并向 Google 发送一个 GET 请求。在接收响应后,将响应正文打印到控制台。
以下是使用 aiohttp 发送 POST 请求的示例:
import aiohttp
import asyncio
async def fetch(session, url, data):
headers = {'Content-Type': 'application/json'}
async with session.post(url, json=data, headers=headers) as response:
return await response.json()
async def main():
async with aiohttp.ClientSession() as session:
data = {'name': 'John', 'age': 30}
result = await fetch(session, 'https://httpbin.org/post', data)
print(result)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
此示例创建了一个异步 HTTP 客户端会话,并向 httpbin.org 发送一个 POST 请求。在接收响应后,将响应转换为 JSON 格式,并打印到控制台。
以上是使用 aiohttp 发送 GET 和 POST 请求的示例。由于 aiohttp 可以与 asyncio 库一起使用,因此它可以轻松地实现高性能的异步 Web 应用程序和客户端。如果您需要编写这样的应用程序,请考虑使用 aiohttp。