首页 > 解决方案 > 如何设置响应的状态码?

问题描述

我正在将 actix 用于我正在开发的 Web 应用程序,并且我正在尝试将状态代码 409 设置为响应,但我不知道该怎么做。有点像这样:

HttpResponse::StatusCode(409).json(Status{
            value: val,
            isOn: true
})

标签: rustactix-webrust-actix

解决方案


有几种方法可以显式设置状态码。最简单的方法是使用 actix-webforwhen实现Responder(T, StatusCode)T: Responder。假设Status是一些自定义结构实现Serialize,你应该能够编写类似的东西

use actix_web::{HttpRequest, Responder, http, web};

fn foo(req: HttpRequest) -> impl Responder {
    (
        web::Json(Status {
            value: val,
            isOn: true,
        }),
        http::StatusCode::CONFLICT,
    )
}

推荐阅读