psf/requests
开发工具用于发送 HTTP/1.1 请求的 Python 库,支持会话、认证、TLS 校验和流式下载。
项目介绍
Requests 是一个发送 HTTP/1.1 请求的 Python 库,省去手动拼接查询字符串和表单编码 PUT、POST 请求体的步骤,适合在 Python 应用里调用 Web API 或下载网络资源。
它把常用操作收在简单接口里:响应对象提供 status_code、headers、encoding、text,以及解析 JSON 的 json() 方法;Session 可以保持 Cookie;TLS/SSL 校验采用浏览器式默认行为。此外还覆盖 Basic 与 Digest 认证、自动解压与解码、多部分文件上传、SOCKS 代理、连接超时、流式下载和 .netrc 自动处理(功能列表)。
快速使用
Requests 要求 Python 3.10 或更高版本(支持版本)。从 PyPI 安装:
$ python -m pip install requests
下面是一个带认证的最小请求示例,目标为 httpbin(示例):
>>> import requests
>>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.json()
{'authenticated': True, ...}
请求成功会返回 Response;可通过 status_code 判断 HTTP 状态,在服务端返回 JSON 时调用 json() 取解析结果。会话、超时、流式下载等更多选项见官方文档。
从源码获取
仓库历史中有一个提交时间戳异常,直接 git clone 可能触发完整性检查失败,克隆时需要加上对应参数:
git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git
也可以用 git config --global fetch.fsck.badTimezone ignore 把该设置写入全局配置(克隆说明)。
使用约束
Requests 面向 Python 3.10+,以 Apache-2.0 许可证通过 PyPI 分发。必须锁定旧版 Python 的应用无法使用当前版本。代理、证书校验、超时等网络行为取决于每次调用或 Session 的配置,库的默认值和可选项以文档为准。
HotRepo 点评
这个项目的地位很难与它的年龄和覆盖面分开看:2011 年创建,README 称其 PyPI 下载量约为每周 3 亿次,被超过 4,000,000 个仓库依赖(README)。在 2026-11-06 的 Python 日榜上,它新增 126 Star,当日位列第 3。
更有参考价值的历史信号来自维护层面。2019 年迁入 Python Software Foundation 前后的 Hacker News 讨论中,the_mitsuhiko 指出提交和发版集中在一人身上,当时 CI 处于失败状态(讨论、评论);另有评论者表示考虑改用 urllib3(回复)。这些描述针对当时状况,并非当前结论,但提醒依赖特定修复的开发者先查看近期发布活动。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。