HTTPリクエストの送信

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 (関連情報)

コードを書く時にこれらのリソースを参考にしてみてください。