📜  aiohttp 获取 - Python (1)

📅  最后修改于: 2023-12-03 14:39:03.512000             🧑  作者: Mango

aiohttp 获取 - Python

简介

aiohttp 是一个支持异步 HTTP 客户端和服务器的 Python 库。它可以用于编写高性能的 Web 应用程序和客户端。

aiohttp 使用 asyncio 库实现异步操作。因此,在使用 aiohttp 时,必须熟悉 asyncio 的基础知识,如 event loop 和协程。

安装

使用 pip 安装 aiohttp:

pip install aiohttp
示例 - GET 请求

以下是使用 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 请求。在接收响应后,将响应正文打印到控制台。

示例 - POST 请求

以下是使用 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。