Api 使用Rust中的request发出POST请求时返回类型错误

Api 使用Rust中的request发出POST请求时返回类型错误,api,rust,httpclient,reqwest,Api,Rust,Httpclient,Reqwest,我对Rust和类型化语言不熟悉,在Rust中使用reqwest进行post请求时遇到困难。我不确定应该将哪些参数传入结果返回类型enum 我也不确定到目前为止我的方法是否正确,因为我在调用时会出错在发送之后。这个函数需要异步吗 error[E0308]: mismatched types --> rust/src/lib.rs:41:13 | 41 | Ok(res) => res, | ^^^^^^^ expe

我对Rust和类型化语言不熟悉,在Rust中使用reqwest进行post请求时遇到困难。我不确定应该将哪些参数传入结果返回类型enum

我也不确定到目前为止我的方法是否正确,因为我在调用
时会出错
发送之后
。这个函数需要异步吗

error[E0308]: mismatched types
   --> rust/src/lib.rs:41:13
    |
41  |             Ok(res) => res,
    |             ^^^^^^^ expected opaque type, found enum `std::result::Result`
    | 
   ::: home/.cargo/registry/src/reqwest-0.11.3/src/async_impl/request.rs:416:26
    |
416 |     pub fn send(self) -> impl Future<Output = Result<Response, crate::Error>> {
    |                          ---------------------------------------------------- the expected opaque type
    |
    = note: expected opaque type `impl std::future::Future`
                      found enum `std::result::Result<_, _>`

error[E0308]: mismatched types
   --> rust/src/lib.rs:42:13
    |
42  |             Err(err) => err,
    |             ^^^^^^^^ expected opaque type, found enum `std::result::Result`
    | 
   ::: /home/.cargo/registry/src/reqwest-0.11.3/src/async_impl/request.rs:416:26
    |
416 |     pub fn send(self) -> impl Future<Output = Result<Response, crate::Error>> {
    |                          ---------------------------------------------------- the expected opaque type
    |
    = note: expected opaque type `impl std::future::Future`
                      found enum `std::result::Result<_, _>`

error: aborting due to 2 previous errors

错误[E0308]:类型不匹配
-->rust/src/lib.rs:41:13
|
41 |正常(res)=>res,
|^^^^^应为不透明类型,找到枚举'std::result::result'`
| 
::home/.cargo/registry/src/reqwest-0.11.3/src/async_impl/request.rs:416:26
|
416 |发布fn发送(自我)->实现未来{
|------------------------------------预期的不透明类型
|
=注意:应为不透明类型`impl std::future::future::future`
找到枚举'std::result::result'`
错误[E0308]:类型不匹配
-->rust/src/lib.rs:42:13
|
42 | Err(Err)=>Err,
|^^^^^^^^^应为不透明类型,找到枚举'std::result::result'`
| 
::/home/.cargo/registry/src/reqwest-0.11.3/src/async_impl/request.rs:416:26
|
416 |发布fn发送(自我)->实现未来{
|------------------------------------预期的不透明类型
|
=注意:应为不透明类型`impl std::future::future::future`
找到枚举'std::result::result'`
错误:由于之前的两个错误而中止
最终,我不确定使用reqwest发出POST请求是否正确,但我有以下几点:

enum Result<T, E> {
        Ok(T),
        Err(E),
    }

    pub async fn make_request(path: &str) ->  Result<(), ()>{

        let client = reqwest::Client::new();
        let request = client.post(format!("http://localhost:8000/{}", path))
            .body("tbd")
            .send();

        match request {
            Ok(res) => res,
            Err(err) => err,
        }
    }

枚举结果{
Ok(T),
呃(E),,
}
发布异步fn发出请求(路径:&str)->结果{
让client=reqwest::client::new();
let request=client.post(格式)http://localhost:8000/{}(路径)
.正文(“待定”)
.send();
匹配请求{
Ok(res)=>res,
Err(Err)=>Err,
}
}

如果您有任何关于前进的建议,我们将不胜感激。

这是否回答了您的问题?此代码的问题在于我制作了一个名为“Result”的自定义枚举当我应该使用内置的结果返回类型时,这没有实现。当我删除
Result
enum时,代码工作了。我还在
.send()
之后添加了
.wait?
,并用Ok(())替换了match语句