我正在尝试使用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)
但我收到此错误:
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"
为什么?我确实在上面的链接中的文档“这需要启用可选的阻止功能”上看到这一行。可能只是这样。但是,我也不清楚如何在 Rust 中为库启用“功能”。
我也试过这个(一些在黑暗中拍摄):
use reqwest::blocking;
Run Code Online (Sandbox Code Playgroud)
同样的错误:
Run Code Online (Sandbox Code Playgroud)let body = reqwest::blocking::get("https://www.rust-lang.org")? .text()?; println!("body = {:?}", body);
按照@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启用可选功能。