Requests: 让 HTTP 服务人类

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用。

警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。

看吧,这就是 Requests 的威力:

>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) >>> r.status_code 200 >>> r.headers['content-type'] 'application/json; charset=utf8' >>> r.encoding 'utf-8' >>> r.text u'{"type":"User"...' >>> r.json() {u'private_gists': 419, u'total_private_repos': 77, ...} 

参见 未使用 Requests 的相似代码.

Requests 允许你发送纯天然,植物饲养的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3。

用户见证

Twitter、Spotify、Microsoft、Amazon、Lyft、BuzzFeed、Reddit、NSA、女王殿下的政府、Amazon、Google、Twilio、Mozilla、Heroku、PayPal、NPR、Obama for America、Transifex、Native Instruments、Washington Post、Twitter、SoundCloud、Kippt、Readability、以及若干不愿公开身份的联邦政府机构都在内部使用。

Armin Ronacher
Requests 是一个完美的例子,它证明了通过恰到好处的抽象,API 可以写得多么优美。
Matt DeBoard
我要想个办法,把 @kennethreitz 写的 Python requests 模块做成纹身。一字不漏。
Daniel Greenfeld
感谢 @kennethreitz 的 Requests 库,刚刚用 10 行代码炸掉了 1200 行意大利面代码。今天真是爽呆了!
Kenny Meyers
Python HTTP: 疑惑与否,都去用 Requests 吧。简单优美,而且符合 Python 风格。

功能特性

Requests 完全满足今日 web 的需求。

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

Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。

用户指南

这部分文档是以文字为主,从 Requests 的背景讲起,然后对 Requests 的重点功能做了逐一的介绍。

  • 简介
    • 开发哲学
    • Apache2 协议
    • Requests 协议
  • 安装 Requests
    • pip install requests
    • 获得源码
  • 快速上手
    • 发送请求
    • 传递 URL 参数
    • 响应内容
    • 二进制响应内容
    • JSON 响应内容
    • 原始响应内容
    • 定制请求头
    • 更加复杂的 POST 请求
    • POST一个多部分编码(Multipart-Encoded)的文件
    • 响应状态码
    • 响应头
    • Cookie
    • 重定向与请求历史
    • 超时
    • 错误与异常
  • 高级用法
    • 会话对象
    • 请求与响应对象
    • 准备的请求 (Prepared Request)
    • SSL 证书验证
    • 客户端证书
    • CA 证书
    • 响应体内容工作流
    • 保持活动状态(持久连接)
    • 流式上传
    • 块编码请求
    • POST 多个分块编码的文件
    • 事件挂钩
    • 自定义身份验证
    • 流式请求
    • 代理
    • 合规性
    • HTTP动词
    • 定制动词
    • 响应头链接字段
    • 传输适配器
    • 阻塞和非阻塞
    • Header 排序
    • 超时(timeout)
  • 身份认证
    • 基本身份认证
    • 摘要式身份认证
    • OAuth 1 认证
    • OAuth 2 与 OpenID 连接认证
    • 其他身份认证形式
    • 新的身份认证形式

社区指南

这部分文档也是文字为主,详细介绍了 Requests 的生态和社区。

  • 常见问题
  • 推荐的库和扩展
  • Integrations
  • Articles & Talks
  • 支持
  • Vulnerability Disclosure
  • 更新
  • 版本历史
  • Release Process and Rules

API 文档/指南

如果你要了解具体的函数、类、方法,这部分文档就是为你准备的。

  • 开发接口
    • 主要接口
    • 异常
    • 请求会话
    • 低级类
    • 更低级的类
    • 身份验证
    • 编码
    • Cookie
    • 状态码查询
    • 迁移到 1.x
    • 迁移到 2.x

贡献指南

如果你要为项目做出贡献,请参考这部分文档。

  • Contributor's Guide
    • Be Cordial
    • Get Early Feedback
    • Contribution Suitability
    • Code Contributions
      • Steps for Submitting Code
      • Code Review
      • New Contributors
      • Kenneth Reitz's Code Style™
    • Documentation Contributions
    • Bug Reports
    • Feature Requests
  • Development Philosophy
    • Management Style
    • Values
    • Semantic Versioning
    • Standard Library?
    • Linux Distro Packages
  • How to Help
    • Feature Freeze
    • Development Dependencies
    • Runtime Environments
    • Are you crazy?
    • Downstream Repackaging
  • 贡献者
    • Keepers of the Four Crystals
    • Urllib3
    • Patches and Suggestions

没有别的指南了,你现在要靠自己了。

转载于:https://www.cnblogs.com/mawenqiangios/p/8311143.html

你可能感兴趣的:(Requests: 让 HTTP 服务人类)