Api 使用Rust中的request发出POST请求时返回类型错误
我对Rust和类型化语言不熟悉,在Rust中使用reqwest进行post请求时遇到困难。我不确定应该将哪些参数传入结果返回类型enum 我也不确定到目前为止我的方法是否正确,因为我在调用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
时会出错编码>在发送之后
。这个函数需要异步吗
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语句