ソモサン

私rohkiによる活動や読書の記録をつらつらと書くページです

Rust で素朴に HTTP リクエストを投げる

以前、Windows でHTTP リクエストするために、1時間ほど格闘した rohki です。
ツラカッタ…

で、格闘する原因となった HTTP ライブラリ hyper の OpenSSL への依存が v0.10 でなくなったとのこと。
Release v0.10.0 · hyperium/hyper
Remove SSL feature (and openssl/security-framework dependencies) · Issue #985 · hyperium/hyper

じゃあ https どうすんの、ということですが、Client は reqwest で ok でした。*1
実際書いてみるとこんな感じ。

extern crate reqwest;

use std::io::Read;

fn main() {
    let mut resp = reqwest::get("https://www.rust-lang.org").unwrap();

    let mut s = String::new();
    resp.read_to_string(&mut s);
    println!("{:?}", s);
}

素朴!!
ライブラリがどうのとか、環境変数とか何もなしですぐ使えました。
ありがたやありがたや。

*1:内部で hyper と native-tls を使っている模様