`reqwest` 是 Rust 中广泛使用的 HTTP 请求库之一,它支持异步操作,提供了丰富的 API 来处理各种 HTTP 请求和响应场景,包括但不限于 GET、POST、PUT、DELETE 请求,以及上传和下载文件等。
以下是 `reqwest` 库的一些基本使用示例:
### 添加依赖
在 `Cargo.toml` 文件中添加 `reqwest` 依赖:
```toml
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
```
### 发送 GET 请求
```rust
use reqwest::Error;
#[tokio::main]
async fn main() -> Result<(), Error> {
let response = reqwest::get("http://example.com").await?;
println!("{}", response.text().await?);
Ok(())
}
```
### 发送 POST 请求
```rust
use reqwest::Error;
#[tokio::main]
async fn main() -> Result<(), Error> {
let response = reqwest::post("http://example.com")
.body("data")
.await?;
println!("{}", response.text().await?);
Ok(())
}
```
### 处理 JSON
`reqwest` 可以很容易地与 `serde_json` 配合使用来处理 JSON 数据:
```rust
use reqwest::Error;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), Error> {
let response = reqwest::post("http://example.com")
.json(&json!({
"key": "value",
}))
.await?;
Ok(())
}
```