我试图遵守以下 reqwest 示例:
let client = reqwest::Client::new();
let res = client.post("http://httpbin.org/post")
.body("the exact body that is sent")
.send()?;
该示例无法编译:
error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
--> src/main.rs:26:15
|
26 | let res = client.post("http://httpbin.org/post")
| _______________^
27 | | .body("the exact body that is sent")
28 | | .send()?;
| |____________^ the `?` operator cannot be applied to type `impl std::future::Future`
|
= help: the trait `std::ops::Try` is not implemented for `impl std::future::Future`
= note: required by `std::ops::Try::into_result`
error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
--> src/main.rs:26:15
|
11 | / fn main(){
12 | | // gets the api key from env var
13 | | let mut key: String = env::var("key").unwrap();
14 | | // get the mok key bassically useless but its still useful to prevent tampering
... |
26 | | let res = client.post("http://httpbin.org/post")
| |_______________^
27 | || .body("the exact body that is sent")
28 | || .send()?;
| ||____________^ cannot use the `?` operator in a function that returns `()`
... |
49 | | //}
50 | | }
| |_- this function should return `Result` or `Option` to accept `?`
|
= help: the trait `std::ops::Try` is not implemented for `()`
= note: required by `std::ops::Try::from_error`
我应该如何解决这个问题?这是过时了吗?我正在使用 Rust 版本 1.47.0