下一代http客户端。

httpx的Python项目详细描述


httpx

httpx-一个面向python的新一代http客户端。

构建状态coverage软件包版本

注意此项目应视为"alpha"版本。它基本上完成了api,但仍有一些领域需要进一步的工作。


我们开始吧…

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

功能

httpx建立在请求的良好可用性之上,并为您提供:

加上请求的所有标准功能..

安装

使用pip安装:

$ pip install httpx

httpx需要python 3.6+

文档

项目文档可在www.encode.io/httpx/" rel="nofollow">www.encode.io/httpx/上找到。

对于所有基础知识的详细介绍,请转到快速启动

有关更高级的主题,请参阅高级用法部分,或 关于发出并行请求或使用 异步客户机

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

贡献

如果您想与httpx合作,请查看贡献。NG指南了解如何开始。

依赖关系

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

  • h2-http/2支持。
  • h11-http/1.1支持。
  • 证书-ssl证书。
  • chardet-回退自动检测响应编码。
  • idna-国际化域名支持。
  • rfc3986-url解析和规范化。
  • brotlipy-解码"brotli"压缩响应。(可选)

大量的信用是由于api布局的请求 接下来的大部分工作,以及urllib3的大量设计 从低级网络细节中获得灵感。

--

httpx是bsd许可的代码。在英国布莱顿设计和制造。

更改日志

0.7.2(2019年8月28日)

  • 对同步客户端强制使用httpx.asynciobackend。(拉动232)
  • httpx.connectionpool将正确释放断开的连接。(拉动230)
  • 客户机中删除raise_app_exceptions参数。(拉动238)
  • 解码错误将不再为用brotli编码的空正文引发。(拉动237)
  • 客户机中添加了http\u版本参数。(拉动250)
  • 仅在诸如httpx.get()之类的短期连接上使用http/1.1。(拉动284)
  • 当设置为属性时,转换client.cookiesclient.headers。(拉动274)
  • 设置httpx_debug=1可启用所有请求的调试日志记录。(拉动277)

0.7.1(2019年8月18日)

  • 包含源分发版可安装的文件。(拉动233)

0.7.0(2019年8月17日)

  • trust_env属性添加到baseclient中。(拉动187)
  • 链接属性添加到基本响应。(拉动211)
  • 接受ssl.sslcontext实例到sslconfig(verify=…)。(拉动215)
  • 添加带有增量编码检测的response.stream_text()。(拉动183)
  • 当重定向更改原点时,正确更新主机标题。(拉动199)
  • 忽略无效的内容编码标题。(拉动196)
  • 默认情况下,当trust-env=true时,使用~/.netrc~/.netrc文件。(拉动189)
  • 使用requestresponse属性创建异常基类httperror。(拉动162)
  • baseclient中添加hsts预加载列表检查以将http url升级到https。(拉动184)
  • 将IDNA编码从IDNA 2003切换到IDNA 2008。(拉动161)
  • 为备用并发后端公开基类。(拉动178)
  • 改进多部分参数编码。(拉动167)
  • headersproeprty添加到baseclient。(拉动159)
  • 添加对google的brotli库的支持。(拉动156)
  • 从默认sslconfig中删除不推荐的tls版本(tlsv1和tlsv1.1)。(拉动155)
  • 修复url.join(…)以类似于rfc3986url连接。(拉动144)

0.6.8(2019年7月25日)

  • 在搜索可用的 连接在连接池中。保持连接(拉入145)
  • 允许对url对象进行字符串比较(pull 139)
  • 添加http状态代码418和451(pull 135)
  • 添加对客户端证书密码的支持(pull 118)
  • 为TLSV1.3启用握手后客户端证书身份验证(拉入(118)
  • 禁止使用commonname检查openssl 1.1.0+(pull 118)的主机名
  • 检测response.json()的编码(pull 116)

0.6.7(2019年7月8日)

  • 检查重新获取的连接是否有效(拉动111)

0.6.6(2019年7月3日)

  • 改进用户代理(拉动110)
  • 默认情况下,向http/1.1连接添加连接:keep alive。(拉动110)

0.6.5(2019年6月27日)

  • 默认情况下包括主机标题。(拉动109)
  • 改进http协议检测。(拉动107)

0.6.4(2019年6月25日)

  • 实现读写超时(拉104)

0.6.3(2019年6月24日)

  • 处理早期连接关闭(拉动103)

0.6.2(2019年6月23日)

  • 对于sslconfig对象,使用urllib3的默认密码。(拉动100)

0.6.1(2019年6月21日)

  • 添加对在客户机上设置基本URL的支持

0.6.0(2019年6月21日)

  • 对于http/2连接(pull 98)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
利用SWAP函数解决互斥的同步Java死锁   主线程退出时程序的java终止?   java Firestore字段空类型用法   java Android在同一页面上滚动到ID   java Eclipse:将源代码文件夹导入其他项目   maven Groovy编译以“java”结尾。StackOverflowerr语言`   java从变量中获取变量列表   java在Eclipse中重命名标识符时输入vs转义   Java:创建一个只包含重复项的数组   java Mule ESB 3.3 Mulecontext注册表pop   bash杀戮屏幕但java进程未结束   java正在创建一个表来存储一行错误编程的迹象?   java如何启动RecentApplicationDialog?   java以确定的增量移动字符串中的字符   使用用户输入搜索多个mysql数据库的JavaJSP算法   java Arraylist到DefaultComboxModel