要使用actix获取文本形式的请求体,可以按照以下步骤进行操作:
[dependencies]
actix-web = "3.0"
use actix_web::{web, App, HttpRequest, HttpServer};
HttpRequest
对象的body()
方法来获取请求体,并使用.await
关键字等待异步操作完成。然后,可以使用.text()
方法将请求体转换为文本形式。async fn handle_request(req: HttpRequest) -> String {
let body = req.body().await.unwrap();
let text = String::from_utf8(body.to_vec()).unwrap();
text
}
main
函数中创建一个HTTP服务器,并将处理函数与路由路径绑定。可以使用App::service()
方法来定义路由,并使用HttpServer::bind()
方法来绑定服务器地址和端口。#[actix_rt::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.service(web::resource("/").route(web::post().to(handle_request)))
})
.bind("127.0.0.1:8080")?
.run()
.await
}
以上代码创建了一个监听在本地地址127.0.0.1和端口8080的HTTP服务器,并将根路径的POST请求路由到handle_request
函数。
这样,当有POST请求发送到服务器的根路径时,handle_request
函数将被调用,并返回请求体的文本形式。
领取专属 10元无门槛券
手把手带您无忧上云