如何使用JSON正文发送错误响应

问题描述 投票:1回答:1

我需要使用403 HTTP错误代码发送JSON响应。 我如何在vibe.d中实现这一目标?

我目前使用此代码:

T enforceCode(T)(HTTPServerResponse res, T value, ErrorCodes code,
    HTTPStatus status = HTTPStatus.forbidden)
{
    if (!value) {
        res.writeJsonBody(["code": code], status);

        enforceHTTP(false, status);
    }
    return value;
}

void sendCode(T)(HTTPServerResponse res, ErrorCodes code, T errorInfo,
    HTTPStatus status = HTTPStatus.forbidden)
{
    import vibe.data.json;

    res.writeJsonBody([
        "code": Json(cast(int)code),
        "info": Json(serializeToJsonString(errorInfo))
    ], status);

    enforceHTTP(false, status); // I need to terminate current action
}

但是其他开发人员抱怨该错误事件在客户端应用程序中触发了两次。 注释掉后, writeJsonBody仅一次。

d vibed
1个回答
0
投票

这是客户端的错误,而不是上述代码中的错误。

© www.soinside.com 2019 - 2024. All rights reserved.