reqwest
http client
高レベルなインターフェイス
tokio上で動作する
内部でhyperを使ってる
docs
github
/mrsekut-book-4297105594/519 (11-6-2 ReqwestによるHTTP POST)
GPT-4.icon
1. GETリクエストの例
code:rust
use 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リクエストの例
code:rust
use 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(): リクエストを実行。