如何在 Rust 中发送 HTTP 请求?
大家好!我开始学习 Rust,遇到了执行 HTTP 请求的问题。需要向外部 API 发送 GET 请求并获取 JSON 响应。我尝试使用标准库,但据我所知,它没有内置的 HTTP 客户端。
我尝试写了类似这样的代码:
use std::io::Read;
fn main() {
let mut response = reqwest::blocking::get("https://api.example.com/data").unwrap();
let mut body = String::new();
response.read_to_string(&mut body).unwrap();
println!("{}", body);
}
但遇到错误:error[E0432]: unresolved import 'reqwest'。看来需要在 Cargo.toml 中添加依赖。如何正确引入 reqwest crate?有哪些替代方案?我对异步版本(tokio + reqwest)和阻塞版本(简单)都感兴趣。
期望得到一个带有错误处理的工作示例,这样代码在请求失败时不会 panic。最好能通过 serde_json 解析 JSON。提前感谢帮助!