一个用于Python的下一代HTTP客户端。httpx

作者:Sec-Labs | 发布时间:

项目介绍

ba196f3a3e231930

 

HTTPX是一个用于Python 3的全功能HTTP客户端库。它包括一个集成的命令行客户端,同时支持HTTP/1.1和HTTP/2,并提供同步和异步的API。

项目地址

https://github.com/encode/httpx

 

使用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]'  # The command line client is an optional dependency.

现在允许我们直接从命令行中使用HTTPX...

a939b9d9c8232107

发送请求...

771d496def232133

特征

HTTPX 建立在公认的可用性之上 requests,并为您提供:

加上所有标准功能 requests...

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

安装

使用 pip 安装:

$ pip install httpx

或者,要包括可选的 HTTP/2 支持,请使用:

$ pip install httpx[http2]

HTTPX 需要 Python 3.7+。

文档

项目文档可在 https://www.python-httpx.org/

如需了解所有基础知识,请参阅 快速入门

有关更高级的主题,请参阅 高级用法 部分、 异步支持 部分或 HTTP/2 部分。

开发人员界面 提供了全面的 API 参考

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

贡献

如果您想为 HTTPX 做出贡献,请查看 贡献指南 以了解如何开始。

依赖项

HTTPX 项目依赖于这些优秀的库:

  • ```
    httpcore

  \- 底层传输实现 

httpx

  . 

  - `h11`- HTTP/1.1 支持。 

- `certifi`- SSL 证书。 

- ```
  rfc3986

- URL解析和规范化。

  • idna- 国际化域名支持。
  • sniffio- 异步库自动检测。

以及这些可选安装:

  • h2- HTTP/2 支持。 (可选,与 httpx[http2])
  • socksio- SOCKS 代理支持。 (可选,与 httpx[socks])
  • rich- 丰富的终端支持。 (可选,与 httpx[cli])
  • click- 命令行客户端支持。 (可选,与 httpx[cli])
  • brotli或者 brotlicffi- 解码“brotli”压缩响应。 (可选,与 httpx[brotli])

巨额信贷是由于 requests对于 API 布局 大部分工作如下,以及 urllib3大量的设计 围绕底层网络细节的灵感。

标签:工具分享