reqwest
http client
高レベルなインターフェイス
1. GETリクエストの例
rustuse reqwest;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// URLにリクエストを送る
let response = reqwest::get("https://jsonplaceholder.typicode.com/posts/1")
.await?;
// ステータスコードを確認
println!("Status: {}", response.status());
// レスポンスのボディを文字列として取得
let body = response.text().await?;
println!("Body:\n{}", body);
Ok(())
}
reqwest::get
: 指定したURLにGETリクエストを送信。
.await
: 非同期処理を待機。
response.text()
: レスポンスの本文を文字列として取得。
2. POSTリクエストの例
rustuse reqwest::Client;
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(); // クライアントを作成
// JSONデータ
let payload = json!({
"title": "foo",
"body": "bar",
"userId": 1
});
// POSTリクエストを送信
let response = client
.post("https://jsonplaceholder.typicode.com/posts")
.json(&payload)
.send()
.await?;
// ステータスコードを確認
println!("Status: {}", response.status());
// レスポンスのボディをJSONとして取得
let body = response.text().await?;
println!("Response Body:\n{}", body);
Ok(())
}
Client::new
: 再利用可能なHTTPクライアントを作成。
.post
: POSTリクエストを送信。
.json(&payload)
: JSONデータを送信。
.send()
: リクエストを実行。