根据this example,我应该能够在以客户端构建器实例化的客户端上运行get
:
use reqwest::header;
let mut headers = header::Headers::new();
headers.set(header::Authorization("secret".to_string()));
// get a client builder
let client = reqwest::Client::builder()
.default_headers(headers)
.build()?;
let res = client.get("https://www.rust-lang.org").send()?;
下面是我编写的代码。
let client = Client::builder()
.gzip(true)
.timeout(Duration::from_secs(10))
.build();
let resp = client.get("https://wiki.mozilla.org/images/f/ff/Example.json.gz");
这是我得到的错误:
error[E0599]: no method named `get` found for type `std::result::Result<reqwest::Client, reqwest::Error>` in the current scope
--> examples/gzipped_http_files.rs:86:23
|
86 | let resp = client.get("https://wiki.mozilla.org/images/f/ff/Example.json.gz");
我在做什么错了?
答案 0 :(得分:0)
由于build()
函数返回了Result
,并且您不能调用reqwest客户端函数作为结果,因此您需要在其中获取值。
在这种情况下,我假设您要获取值并将错误传播到顶部。
在此处使用?
运算符会很方便。
因此,您需要更改以下构建调用,如下所示:
let client = Client::builder()
.gzip(true)
.timeout(Duration::from_secs(10))
.build()?; // This ? operator gets the value if the result is ok and throws error to upper level