web-dev-qa-db-ja.com

「reqwest」で「ブロッキング」を見つけることができませんでした

reqwest 0.10.0-alpha.2 を使用して、指定されたURLからテキストファイルをダウンロードしようとしています。これは適切なツールのようです。私のCargo.tomlファイルにこれがあります:

[package]
name = "..."
version = "0.1.0"
authors = ["Y*** <y***@***.***>"]
edition = "2019"

# See more keys and their definitions at https://doc.Rust-lang.org/cargo/reference/manifest.html

[dependencies]
reqwest = "0.10.0-alpha.2"

依存関係は解決したようで、Cargo.lockファイルを持っています。

私はこのスニペットを the docs から持ち上げました

let body = reqwest::blocking::get("https://www.Rust-lang.org")?
    .text()?;

println!("body = {:?}", body);

しかし、私はこのエラーを得ています:

  |  
  |     let body = reqwest::blocking::get("https://www.Rust-lang.org")?.text()?;  
  |                         ^^^^^^^^ could not find `blocking` in `reqwest`  

どうして?上記のリンクの「これにはオプションのブロック機能を有効にする必要があります」というドキュメントにこの行が表示されます。それだけかもしれません。ただし、Rustでライブラリの「機能」をどのように有効にするかは、私には明らかではありません。


私もこれを試しました(いくつかは暗闇での撮影です):

use reqwest::blocking;

同じエラー:

 |
 | use reqwest::blocking;
 |     ^^^^^^^^^^^^^^^^^ no `blocking` in the root

「reqwest」で「ブロッキング」を有効にするための@edwardwの回答に従い、次に?からunwrapへ。わかりませんが、?は、古いバージョンのRustまたはsthからのものです。しかし、コンパイルできません。

let body = reqwest::blocking::get("https://www.Rust-lang.org")
    .unwrap()
    .text();
println!("body = {:?}", body);
10
Yuchen Zhong

クレートのオプション機能です。依存関係で明示的に有効にする必要があります。

[dependencies]
reqwest = { version = "0.10.0-alpha.2", features = ["blocking"] }

reqwest::blockingドキュメント はそれについて言及しています:

これには、オプションのblocking機能を有効にする必要があります。

12
edwardw