codecamp

httpx 介绍

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

 为了方便对方法的理解,本篇教程全文代码基本都是采用python shell 环境进行调试!

使用 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>...'

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

# 命令行客户端是可选的依赖项。以下为MacOS下运行的命令

$ pip install 'httpx[cli]' #以下是Windows下运行的命令 pip install httpx[cli]

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

1


正在发送请求...


特点

HTTPX 建立在​requests​的成熟可用性之上,并为您提供:

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

  • 国际域名和网址
  • Keep-Alive & Connection Pooling
  • 具有 Cookie 持久性的会话
  • 浏览器式 SSL 验证
  • 基本/摘要式身份验证
  • 优雅的键/值Cookie
  • 自动解压
  • 自动内容解码
  • Unicode 响应的 Body
  • 分段文件上传
  • 代理支持
  • 连接超时
  • 流式传输下载
  • .NETrc​ 支持
  • 分块请求

文档

有关所有基础知识的概述,请转到快速入门

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

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

若要了解与 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​围绕较低层次的网络细节提供的大量设计灵感,都是一笔巨大的功劳。

安装

用pip安装:

$ pip install httpx

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

$ pip install httpx[http2]

要包括可选的 brotli 解码器支持,请使用:

$ pip install httpx[brotli]


httpx 快速入门
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }