Skip to content

HTTPX

HTTPX


测试套件 软件包版本

Python 的下一代 HTTP 客户端。

HTTPX 是一个功能全面的 Python 3 HTTP 客户端,提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2。


使用 pip 安装 HTTPX:

$ pip install httpx

现在,让我们开始使用:

>>> import httpx
>>> r = httpx.get('https://www.example.org/')
>>> r
<Response [200 OK]>
>>> r.status_code
200
>>> r.headers['content-type']
'text/html; charset=UTF-8'
>>> r.text
'<!doctype html>\n<html>\n<head>\n<title>Example Domain</title>...'

或者,使用命令行客户端:

# 命令行客户端是可选依赖项
$ pip install 'httpx[cli]'

现在我们可以直接从命令行使用 HTTPX...

httpx --help

发送请求...

httpx http://httpbin.org/json

特性

HTTPX 基于 requests 广为人知的易用性,为您提供:

以及 requests 的所有标准功能...

  • 国际化域名和 URL
  • 保持连接和连接池
  • 带 Cookie 持久化的会话
  • 浏览器式 SSL 验证
  • 基本/摘要认证
  • 优雅的键值对 Cookie
  • 自动解压缩
  • 自动内容解码
  • Unicode 响应体
  • 多部分文件上传
  • HTTP(S) 代理支持
  • 连接超时
  • 流式下载
  • .netrc 支持
  • 分块请求

文档

要了解所有基础知识,请前往快速入门

更多高级主题,请参阅高级部分、异步支持部分或HTTP/2部分。

开发者接口提供了全面的API参考。

如需了解与HTTPX集成的工具,请参阅第三方包

依赖项

HTTPX项目依赖于以下优秀库:

  • httpcore - httpx的底层传输实现。
  • h11 - HTTP/1.1支持。
  • certifi - SSL证书。
  • idna - 国际化域名支持。
  • sniffio - 异步库自动检测。

以及以下可选安装:

  • h2 - HTTP/2支持。(可选,通过httpx[http2]安装)
  • socksio - SOCKS代理支持。(可选,通过httpx[socks]安装)
  • rich - 富文本终端支持。(可选,通过httpx[cli]安装)
  • click - 命令行客户端支持。(可选,通过httpx[cli]安装)
  • brotlibrotlicffi - "brotli"压缩响应解码。(可选,通过httpx[brotli]安装)
  • zstandard - "zstd"压缩响应解码。(可选,通过httpx[zstd]安装)

特别感谢requests提供了本项目大量遵循的API布局,以及urllib3在底层网络细节设计上的诸多启发。

安装

使用pip安装:

$ pip install httpx

如需包含可选的HTTP/2支持,请使用:

$ pip install httpx[http2]

如需包含可选的brotli和zstandard解码器支持,请使用:

$ pip install httpx[brotli,zstd]

HTTPX需要Python 3.9+版本