Expand description
请求模块 — postData/getData/file/upload
对齐 PHP $this->request->post() / $this->request->get() / $this->request->param()。
强制 POST,不使用 GET 分支(遵循项目规范)。
§PHP 对齐
| PHP 方法 | 行为 | Rust 等价 |
|---|---|---|
$this->request->param() | 合并 POST + GET + route 参数 | fetch_post_data(合并 body + query) |
$this->request->post() | 仅 POST body | fetch_body_data |
$this->request->get() | 仅 GET query | fetch_query_data |
postData($key) | param($key.'/a')(强制数组) | fetch_post_data_by_key |
getData($key) | get($key) | fetch_query_data_by_key |
§注意
param()在 PHP 中还会合并 route 参数({id}等),在 axum 中这些由 handler 参数捕获, 所以本模块仅合并 body + query。/a强制数组在 Rust 中不适用(强类型语言),调用方需自行处理类型转换。- 本模块提供低层数据获取;上层控制器在 controller 模块实现
postData()方法时封装。
§用法
ⓘ
use sz_rust_http_facade::request::fetch_post_data;
use axum::http::Request;
use axum::body::Body;
async fn handler(req: Request<Body>) {
// 合并 body + query
let data = fetch_post_data(req).await.unwrap();
println!("{}", data);
}Functions§
- fetch_
body_ data - 从请求中仅获取 body 参数(不含 query)
- fetch_
post_ data - 从请求中获取合并参数(body + query)
- fetch_
post_ data_ by_ key - 从请求中获取单个合并参数(body + query)
- fetch_
query_ data - 从请求中仅获取 query 参数
- fetch_
query_ data_ by_ key - 从请求中仅获取 query 参数的单个字段
- parse_
query - 解析 query string 为
HashMap<String, String> - url_
decode - 简单 URL 解码(支持 %XX 与 + → space)