在“reqwest”中找不到“blocking”

Yuc*_*ong 30 rust 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"
Run Code Online (Sandbox Code Playgroud)

依赖似乎解决了,我有我的 Cargo.lock 文件。

我从文档中提取这个片段

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

println!("body = {:?}", body);
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

[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"
Run Code Online (Sandbox Code Playgroud)

为什么?我确实在上面的链接中的文档“这需要启用可选的阻止功能”上看到这一行。可能只是这样。但是,我也不清楚如何在 Rust 中为库启用“功能”。


我也试过这个(一些在黑暗中拍摄):

use reqwest::blocking;
Run Code Online (Sandbox Code Playgroud)

同样的错误:

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

println!("body = {:?}", body);
Run Code Online (Sandbox Code Playgroud)

按照@edwardw 的回答在“reqwest”中启用“阻塞”,然后也必须更改?unwrap. 不确定,但可能?来自旧版本的 rust 或 sth。但它不为我编译。

let body = reqwest::blocking::get("https://www.rust-lang.org")
    .unwrap()
    .text();
println!("body = {:?}", body);
Run Code Online (Sandbox Code Playgroud)

edw*_*rdw 44

这是板条箱的可选功能。您必须在依赖项中显式启用它:

[dependencies]
reqwest = { version = "0.10.0-alpha.2", features = ["blocking"] }
Run Code Online (Sandbox Code Playgroud)

reqwest::blocking文件确实提到它:

这需要blocking启用可选功能。