reqwest
是一个用于 Rust 的强大 HTTP 客户端库,它允许你轻松地进行 HTTP 请求。以下是 reqwest
的一些常见用法:
- 发送 GET 请求:
use reqwest::Error; async fn get_request() -> Result{ let response = reqwest::get("https://api.example.com/data") .await? .text() .await?; Ok(response) }
- 发送 POST 请求:
use reqwest::{Client, Error}; use serde_json::json; async fn post_request() -> Result{ let client = Client::new(); let data = https://www.yisu.com/ask/json!({"key": "value", }); let response = client.post("https://api.example.com/data") .json(&data) .send() .await? .text() .await?; Ok(response) }
- 添加请求头:
use reqwest::Error; async fn request_with_headers() -> Result{ let client = Client::new(); let response = client.get("https://api.example.com/data") .header("Authorization", "Bearer your_token") .header("Custom-Header", "custom_value") .send() .await? .text() .await?; Ok(response) }
- 超时设置:
use reqwest::Error; use std::time::Duration; async fn request_with_timeout() -> Result{ let client = Client::builder() .timeout(Duration::from_secs(5)) .build()?; let response = client.get("https://api.example.com/data") .send() .await? .text() .await?; Ok(response) }
- 错误处理:
use reqwest::Error; async fn handle_error() { match reqwest::get("https://api.example.com/data") .await { Ok(response) => { if response.status().is_success() { let body = response.text().await?; println!("Success! Body: {}", body); } else { eprintln!("Error: {}", response.status()); } } Err(e) => eprintln!("Request failed: {}", e), } }
- 同步请求(不推荐):
use reqwest::Error; fn sync_request() -> Result{ let response = reqwest::get("https://api.example.com/data") .send()? .text()?; Ok(response) }
这些示例展示了如何使用 reqwest
库执行基本的 HTTP 请求。你可以根据自己的需求进行调整,例如使用不同的 HTTP 方法、处理响应数据等。