生成代码 python 协程 httpx
时间: 2024-01-06 08:07:07 浏览: 118
下面是一个使用 Python 协程和 httpx 库实现的异步 HTTP 请求的示例代码:
```python
import asyncio
import httpx
async def fetch(url):
async with httpx.AsyncClient() as client:
response = await client.get(url)
return response.text
async def main():
urls = [
'https://www.google.com',
'https://www.github.com',
'https://www.baidu.com',
]
tasks = [fetch(url) for url in urls]
results = await asyncio.gather(*tasks)
for result in results:
print(result[:80])
if __name__ == '__main__':
asyncio.run(main())
```
在这个示例代码中,我们定义了一个 `fetch` 函数,该函数使用 `httpx` 库发送异步的 HTTP 请求,并返回响应的文本内容。然后我们定义了一个 `main` 函数,该函数使用 `asyncio.gather` 函数来并发执行多个 `fetch` 函数,并等待所有请求完成后输出响应结果。最后我们使用 `asyncio.run` 函数来运行 `main` 函数。
需要注意的是,在使用 `httpx` 库时,我们需要使用 `async with` 语句来创建异步的 HTTP 客户端对象,并在请求完成后自动关闭该对象。这样可以确保我们的代码不会因为未关闭 HTTP 连接而导致内存泄漏等问题。
阅读全文