溪客(编程代码) 溪客(编程代码)

  • 今天是2025年08月20日 Wednesday
  • 首页
  • 知识
  • 网址
  • AI助手

Python

首页 / 知识 / Python
  • 基础
    • Conda
    • Jupyter
    • dump
    • CSharp2Python
    • 关于模块导入
    • 关于推导式
    • 关于元组
    • set和数组的区别
    • 关于Literal
    • 关于iter
    • 关于setup.py
    • 路径拼接
    • 方法命名约定
  • 库
    • 其他
    • argparse命令行参数解析
    • asyncio自带异步编程库
    • aiofiles异步文件读写库
    • beautifulsoup4_HTML_XML解析库
    • colorama_在终端输出漂亮的字
    • datasets数据集处理
    • html2text
    • httpx_HTTP请求库
    • litellm
    • loguru日志库
    • numpy科学计算基础库
    • pillow图像处理
    • pydantic数据验证
    • pyyaml
    • requests_HTTP请求库
    • tenacity重试
    • tiktoken计算Token量
    • torch机器学习_深度学习框架
    • tomli TOML文件解析库
    • tomllib 自带TOML文件解析库
    • unidiff_文本_文件差异对比
    • uvicorn_Web服务器
  • langchain
    • langchain-chatchat
    • langchain-qianfan
**httpx 是一个功能强大、支持 HTTP/1.1 和 HTTP/2 的现代化 Python HTTP 客户端库,用于发送 HTTP 请求,类似于 requests,但支持异步和更多特性。** --- ## 一、httpx 是什么?(简单理解) - httpx 是一个用来**发送 HTTP 请求**的 Python 库,功能类似大家熟悉的 `requests` 库。 - 但它比 `requests` 更现代,主要特点是: - **支持同步和异步两种用法** - **支持 HTTP/1.1 和 HTTP/2** - **支持客户端证书、HTTP/2、连接池等高级功能** - **更适配现代 Python 生态,特别是异步框架(如 FastAPI、aiohttp、Starlette 等)** --- ## 二、httpx 解决什么问题? 当你需要从 Python 代码中: - 访问 RESTful API - 爬取网页内容 - 调用第三方 HTTP 服务 - 发送 GET、POST、PUT、DELETE 等 HTTP 请求 你通常会用 `requests` 库,但 `requests` **只支持同步请求,不支持异步,也不支持 HTTP/2**。 **httpx 的优势在于:** | 需求 | httpx 的解决方案 | |------|------------------| | 发送 HTTP 请求(类似 requests) | 提供几乎一致的 API,容易上手 | | 异步 HTTP 请求 | 支持 `async/await`,适合异步编程(如 asyncio、FastAPI) | | 高性能 HTTP/2 | 支持 HTTP/2 协议,提升访问效率 | | 更现代的功能 | 支持客户端证书、超时控制、连接池等 | --- ## 三、安装 httpx 使用 pip 安装: ```bash pip install httpx ``` 如果需要 **异步支持 + HTTP/2**,可以安装: ```bash pip install "httpx[http2]" ``` --- ## 四、httpx 基本使用示例 ### 1. 同步请求(类似 requests) ```python import httpx # 发送 GET 请求 response = httpx.get('https://httpbin.org/get') print(response.status_code) print(response.json()) ``` ### 2. 异步请求 ```python import asyncio import httpx async def fetch(): async with httpx.AsyncClient() as client: response = await client.get('https://httpbin.org/get') print(response.status_code) print(response.json()) asyncio.run(fetch()) ``` --- ## 五、httpx 常用功能 | 功能 | 说明 | |------|------| | **GET / POST / PUT / DELETE** | 支持所有常用 HTTP 方法 | | **同步和异步客户端** | 同步用 `httpx.get()`,异步用 `AsyncClient` | | **HTTP/2 支持** | 可启用 HTTP/2 提升访问速度 | | **超时设置** | 可设置请求超时时间 | | **自定义请求头、Cookies、代理** | 和 requests 类似,用法直观 | | **文件上传、表单提交** | 支持 multipart/form-data 等 | | **客户端证书、认证** | 支持 SSL 客户端证书、Basic Auth 等 | --- ## 六、总结(中文) > **httpx 是一个功能丰富、支持同步/异步、支持 HTTP/2 的现代 HTTP 客户端库,是 requests 的有力替代品,特别适合在异步编程、API 调用、微服务等场景下使用。** --- ✅ **简单来说:** > 如果你需要一个**功能更强、支持异步和 HTTP/2 的 HTTP 请求库**,或者你正在使用 **FastAPI、asyncio 等异步框架**,那么 **httpx 是比 requests 更合适的选择**。它用法类似 requests,但更现代、更强大。
© 2022 - 溪客(编程代码) - 粤ICP备10217501号 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)