Rust:
HTTPリクエストの送信
How to: (やり方)
RustでHTTPリクエストを送る基本的なコードを見てみましょう。reqwest
クレートを使うと簡単です。Cargo.tomlに依存を追加してください。
[dependencies]
reqwest = "0.11"
tokio = { version = "1", features = ["full"] }
さあ、コードを書きましょう。
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let res = reqwest::get("https://httpbin.org/ip").await?.text().await?;
println!("Response: {}", res);
Ok(())
}
実行すると、こんな出力が見られます。
Response: {
"origin": "Your IP address"
}
Deep Dive (深掘り)
HTTPリクエストの送信は、インターネットの基盤です。最初はcURLなどのツールで行われていましたが、今ではほとんどのプログラミング言語でサポートされています。
reqwest
はRustで一番人気のあるHTTPクライアントライブラリですが、代わりにhyper
を低レベルで使うこともできますし、curl
バインディングを使うこともできます。
実装の詳細については、reqwest
は非同期I/O(async/await
)をサポートし、TLSを扱うためのrustls
を使っています。これにより、安全で効率的なHTTPリクエストが可能となります。
See Also (関連情報)
- 公式
reqwest
ドキュメント: https://docs.rs/reqwest/ async/await
の説明: https://rust-lang.github.io/async-book/tokio
ランタイムの案内: https://tokio.rs/
コードを書く時にこれらのリソースを参考にしてみてください。