rust ureq库,发送json格式的post请求
【摘要】 在 Rust 中使用 ureq 库发送 JSON POST 请求非常简单。以下是一个完整的示例:use serde_json::json;use ureq;fn main() -> Result<(), ureq::Error> { // 准备要发送的 JSON 数据 let data = json!({ "name": "John Doe", "ag...
在 Rust 中使用 ureq
库发送 JSON POST 请求非常简单。以下是一个完整的示例:
use serde_json::json;
use ureq;
fn main() -> Result<(), ureq::Error> {
// 准备要发送的 JSON 数据
let data = json!({
"name": "John Doe",
"age": 30,
"email": "john@example.com"
});
// 发送 POST 请求
let response = ureq::post("https://example.com/api/endpoint")
.set("Content-Type", "application/json") // 设置请求头
.send_json(data)?; // 发送 JSON 数据
// 处理响应
let status = response.status();
let body = response.into_string()?;
println!("Status: {}", status);
println!("Response: {}", body);
Ok(())
}
关键点说明:
-
依赖:确保你的
Cargo.toml
中包含:[dependencies] ureq = "2.0" serde_json = "1.0"
-
JSON 构建:使用
serde_json::json!
宏可以方便地构建 JSON 数据 -
请求头设置:必须设置
Content-Type: application/json
头 -
错误处理:
ureq
的方法返回Result
类型,需要处理可能的错误
更简洁的写法(Rust 2021+)
use serde_json::json;
use ureq;
fn main() -> Result<(), ureq::Error> {
let response = ureq::post("https://example.com/api/endpoint")
.set("Content-Type", "application/json")
.send_json(json!({
"query": "Rust",
"limit": 10
}))?;
println!("{}", response.into_string()?);
Ok(())
}
注意事项
- 对于复杂的 JSON 结构,可以先定义结构体并使用
serde
序列化 - 考虑使用
ureq::Agent
来重用连接池以提高性能 - 如果需要更高级的功能,可以考虑
reqwest
库
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)