如何设置响应的状态码?

How to set the status code of a response?

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

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

有几种方法可以显式设置状态代码。最简单的方法是使用 actix-web 的 implementation of Responder for (T, StatusCode) whenever 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,
    )
}