reqwest :: client没有get方法

时间:2019-02-07 14:49:41

标签: rust gzip reqwest

根据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");

我在做什么错了?

1 个答案:

答案 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