gpt4 book ai didi

rust - 如何在 Actix-web 4.0 中使用 actix_web::client::Client

转载 作者:行者123 更新时间:2023-12-05 01:06:06 26 4
gpt4 key购买 nike

我使用使用 tokio 1 的 crate scylla,所以我必须使用 crate actix-web 4.0 beta。现在我有问题,使用 actix_web::client::Client 显示错误:

3 | use actix_web::client::Client;
| ^^^^^^ could not find `client` in `actix_web`

我想用这段代码在 actix 处理程序中访问 API:

pub(crate) async fn proses_mapmatching(data: web::Data<AppState>) -> impl Responder {

let client = Client::default();

let res = client.post("http://localhost:8002/trace_route")
.send()
.await
.unwrap()
.body()
.await;

println!("Response: {:?}", res);

HttpResponse::Ok().body(format!("Hello {:?}", res))
}

任何想法仍然使用带有reqest post insede处理函数的actix-web 4?谢谢

用 AWC 回答代码 - 感谢 @kmdreko 先生

pub(crate) async fn proses_mapmatching(data: web::Data<AppState>) -> impl Responder {

let mut client = awc::Client::default();
let response = client.post("http://localhost:8002/trace_route")
.send_body("Raw body contents")
.await;

println!("Response: {:?}", response.unwrap().body().await);

HttpResponse::Ok().body(format!("Hello {}!", rows.len()))
}

最佳答案

这在 actix_web Changes.md 中有所提及对于 v4.0:

The client mod was removed. Clients should now use awc directly.

actix_web::client 模块早已在很大程度上是 awc 的包装器。 crate 从 1.0 版本开始,但现在他们似乎想将它们完全分开。

awc 中的类型应该与之前的 actix_web 版本中公开的类型几乎相同,但是如果您将其与 actix_web:4.0 一起使用>(目前处于测试阶段),那么您将需要使用 awc:3.0(目前处于测试阶段)以获得兼容性。

关于rust - 如何在 Actix-web 4.0 中使用 actix_web::client::Client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69833626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com