在`reqwest`中找不到`阻塞`

时间:2019-11-18 01:40:26

标签: 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"

该依赖性似乎已解决,并且我有我的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

按照@edwardw的回答在“ reqwest”中启用“阻止”,然后还必须将?更改为unwrap。不确定,但是?可能来自旧版本的rust或sth。但这对我来说不是编译的。

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

1 个答案:

答案 0 :(得分:7)

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

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

reqwest::blocking documentation确实提到了它:

  

这需要启用可选的blocking功能。