我正在尝试使用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);
答案 0 :(得分:7)
它是包装箱的可选功能。您必须在依赖项中显式启用它:
[dependencies]
reqwest = { version = "0.10.0-alpha.2", features = ["blocking"] }
reqwest::blocking
documentation确实提到了它:
这需要启用可选的
blocking
功能。