# ruyiHttp **Repository Path**: losenine888/ruyiHttp ## Basic Information - **Project Name**: ruyiHttp - **Description**: 基于真实 Firefox 158 原生网络组件的 Python 请求库,提供 Requests 风格接口。 一条 pip install 即可安装,支持 HTTP/1.1、HTTP/2、HTTP/3、会话、代理和流式请求,无需启动浏览器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 4 - **Created**: 2026-10-21 - **Last Updated**: 2026-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ruyiHttp 火狐真实请求的Requests风格包 **基于真实 Firefox 158 原生网络组件的 Python 请求库,提供 Requests 风格接口。** 一条 `pip install` 即可安装,支持 HTTP/1.1、HTTP/2、HTTP/3、会话、代理和流式请求,无需启动浏览器。 [![Python](https://img.shields.io/badge/Python-3.10%E2%80%933.14-3776AB?style=flat-square&logo=python&logoColor=white)](https://pypi.org/project/ruyihttp/) [![Platform](https://img.shields.io/badge/platform-Windows%20%2F%20Linux%20x64-0078D4?style=flat-square)](https://github.com/charlesval/ruyiHttp/releases) 保留你熟悉的 `get()`、`post()`、`Session` 和 `Response` 用法,通过 Python 接口调用随包附带的原生库(Windows DLL / Linux `.so`)。 ```bash pip install -U ruyihttp ``` ```python import ruyihttp as requests response = requests.get("https://example.com", timeout=30) response.raise_for_status() print(response.text) ``` [快速开始](#快速开始) · [常用功能](#常用功能) · [更多用法](#更多用法) · [赞助商](#赞助商) · [问题反馈](https://github.com/charlesval/ruyiHttp/issues) ## 快速开始 支持 **Windows x64** 和 **Linux x86_64**,需要 **64 位 Python 3.10–3.14**。 Linux 需要 **glibc 2.31 或更高版本**,例如 Ubuntu 20.04+、Debian 11+。 原生库随 wheel 自动安装,Python 依赖由 pip 解析。 ```bash python -m pip install -U ruyihttp python -c "import ruyihttp; print(ruyihttp.__version__)" ``` 也可以从 [GitHub Releases](https://github.com/charlesval/ruyiHttp/releases) 下载 wheel 后用 pip 安装。 Windows 系统如果提示缺少 `VCRUNTIME` 或 `MSVCP`,请安装 [Microsoft Visual C++ x64 Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe)。 ### 使用 Session Session 可复用连接、Cookie 和默认请求头: ```python import ruyihttp with ruyihttp.Session() as session: session.headers.update({"User-Agent": "my-client/1.0"}) response = session.get( "https://httpbin.org/get", params={"page": 1, "keyword": "ruyihttp"}, timeout=(5, 30), ) response.raise_for_status() print(response.json()) ``` ## 常用功能 | 功能 | 用法 | | --- | --- | | HTTP 请求 | `get`、`post`、`put`、`patch`、`delete`、`head`、`options` | | 会话管理 | `Session`、连接复用、Cookie、默认请求头 | | 请求数据 | URL 参数、表单、JSON、文件上传、生成器请求体 | | 响应处理 | `text`、`content`、`json()`、状态码、响应头 | | 流式下载 | `stream=True`、`iter_content()`、`iter_lines()` | | 代理 | HTTP、HTTPS、SOCKS4/5、代理认证 | | 认证与跳转 | Basic / Digest 认证、重定向、响应钩子 | | 连接控制 | 超时、重试、CA 证书、自定义适配器 | | 协议 | HTTP/1.1、HTTP/2、通过 HTTPS Alt-Svc 选择 HTTP/3 | | TLS 信息 | `response.tls` 查看协商协议、版本及会话信息 | ## 更多用法 ### 发送 JSON ```python import ruyihttp response = ruyihttp.post( "https://httpbin.org/post", json={"name": "ruyihttp", "enabled": True}, timeout=30, ) response.raise_for_status() print(response.json()) ``` ### 使用代理 ```python import ruyihttp response = ruyihttp.get( "https://example.com", proxies={"https": "http://127.0.0.1:8080"}, timeout=30, ) ``` SOCKS 代理先安装可选依赖,再使用 `socks5h://127.0.0.1:1080` 等代理地址: ```bash pip install "ruyihttp[socks]" ``` ### 流式下载 ```python import ruyihttp with ruyihttp.get("https://example.com", stream=True, timeout=30) as response: response.raise_for_status() with open("page.html", "wb") as output: for chunk in response.iter_content(chunk_size=65536): output.write(chunk) ``` ### 配置重试 ```python from ruyihttp import Session from ruyihttp.adapters import HTTPAdapter from urllib3.util import Retry with Session() as session: session.mount("https://", HTTPAdapter(max_retries=Retry(total=3))) response = session.get("https://example.com", timeout=(5, 30)) response.raise_for_status() ``` ### 查看 TLS 信息 ```python import ruyihttp response = ruyihttp.get("https://example.com", timeout=30) print(response.tls) ``` ## 反馈与交流 欢迎通过 [Issues](https://github.com/charlesval/ruyiHttp/issues) 反馈问题或提出功能建议。 反馈时请附上 Python 版本、ruyihttp 版本、最小复现代码和错误信息,分享前移除 Cookie、Token 等私密数据。 微信联系Charleval。 相关项目:[ruyiPage](https://github.com/charlesval/ruyiPage) 提供 Firefox 浏览器自动化能力,适合需要页面操作的场景。