Expand description
§unistore-http: HTTP 客户端能力
提供开箱即用的 HTTP 客户端,支持自动重试和超时控制。
§设计哲学
三层 API 设计:从简单到复杂,满足不同场景需求。
┌─────────────────────────────────────────────────────────────────┐
│ Level 3: 便捷函数(一行代码) │
│ get(url) / post_json(url, body) │
├─────────────────────────────────────────────────────────────────┤
│ Level 2: HttpClient(带配置的客户端) │
│ HttpClient::new() / HttpClient::builder() │
├─────────────────────────────────────────────────────────────────┤
│ Level 1: 底层访问(完全控制) │
│ client.inner() -> &reqwest::Client │
└─────────────────────────────────────────────────────────────────┘§快速开始
ⓘ
use unistore_http::{get, get_json, HttpClient};
// Level 3: 便捷函数
let body = get("https://api.example.com/status").await?.text()?;
let user: User = get_json("https://api.example.com/user/1").await?;
// Level 2: 客户端实例
let client = HttpClient::builder()
.timeout(Duration::from_secs(60))
.max_retries(5)
.build()?;
let resp = client.get("https://api.example.com/data").await?;Structs§
- Cancellable
Request - 可取消的请求
- Cancellation
Token - 取消令牌(只读)
- Cancellation
Trigger - 取消触发器(只写)
- Http
Capability - HTTP 客户端能力
- Http
Client - HTTP 客户端
- Http
Client Config - HTTP 客户端配置
- Http
Client Config Builder - HTTP 客户端配置构建器
- Proxy
Config - 代理配置
- Request
Builder - 请求构建器
- Response
- HTTP 响应
Enums§
- Http
Error - HTTP 客户端错误
- Method
- HTTP 方法
- Retry
Strategy - 重试策略
Functions§
- cancellation_
pair - 创建取消令牌对
- delete
- 快捷 DELETE 请求
- get
- 快捷 GET 请求
- get_
bytes - 快捷 GET 请求并获取字节
- get_
json - 快捷 GET 请求并解析为 JSON
- get_
text - 快捷 GET 请求并获取文本
- head
- 快捷 HEAD 请求
- patch_
json - 快捷 PATCH 请求(JSON body)
- post_
form - 快捷 POST 请求(表单 body)
- post_
json - 快捷 POST 请求(JSON body)
- post_
json_ for_ json - 快捷 POST 请求(JSON body)并解析响应为 JSON
- put_
json - 快捷 PUT 请求(JSON body)