首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vibed:写入输出流的末尾

vibed:写入输出流的末尾
EN

Stack Overflow用户
提问于 2016-06-14 10:28:17
回答 1查看 80关注 0票数 0

我不明白为什么会出现错误:在下一个代码中:

代码语言:javascript
复制
void logout(HTTPServerRequest req, HTTPServerResponse res)
{
    try
    {
        logInfo("Logout section");
        Json request = req.json;
        Json responseBody = Json.emptyObject; // 

        if (req.session) // if user have active session
        {
            res.terminateSession();
            responseBody["status"] = "success";
            responseBody["isAuthorized"] = false;
            res.writeJsonBody(responseBody);
            logInfo("-------------------------------------------------------------------------------");
            logInfo(responseBody.toString);
            logInfo("^-----------------------------------------------------------------------------^");                              
            logInfo("User %s logout", request["username"]); //
            logInfo("User 12333333333333 logout"); //
        }

        else
        {
            responseBody["status"] = "fail"; // user do not have active session?
            logInfo("User do not have active session"); 
            res.writeJsonBody(responseBody);
        }
    writeln("-------before-------");
    writeln(responseBody.toString);
    res.writeJsonBody(responseBody);
    writeln("-------after-------");
    }

    catch (Exception e)
    {
        logInfo(e.msg);
        writeln("3333");
    }
}

这是屏幕截图

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-14 10:42:44

writeJsonBody一次序列化响应JSON,设置statuscontent_type,并关闭输出流。仔细看看您的代码--它两次调用res.writeJsonBody(responseBody)

如果您想要流一个响应,您可以像这个res.bodyWriter.put("a sentence.")一样访问输出流,但是请注意,一旦第一次访问了它,它就不允许更改响应的任何头部(例如状态代码),因为标头已经发送到客户端。

顺便说一句,您可能对Vibed的高级REST API特性感兴趣。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37809434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档