搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

psf/requests

开发工具

用于发送 HTTP/1.1 请求的 Python 库,支持会话、认证、TLS 校验和流式下载。

54,708
11,520
Python
Apache-2.0
创建于 15 年前

项目介绍

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 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Requests moved to Python Software Foundation
▲ 111 · 57 条评论 · 2019年9月19日
Python-Requests.org Domain Suspended
▲ 4 · 0 条评论 · 2022年5月23日
Python Requests is getting an interesting alternative
▲ 3 · 2 条评论 · 2024年10月31日