在java web-app中,我写给我的HttpServletResponse:
httpResponse.getWriter().write(someJsonString);
httpResponse.getWriter().flush();
客户端(在这种情况下为apache jmeter)获取正文中的json和状态200的响应。
如果我决定更改响应状态:
httpResponse.getWriter().write(someJsonString);
httpResponse.setStatus(Response.Status.NO_CONTENT.getStatusCode());
httpResponse.getWriter().flush();
我的客户端获得了具有正确状态的响应(在本例中为204),但由于某种原因,它是一个空主体。
导致这种情况的原因是什么?
答案 0 :(得分:0)
当您将响应发送为204时,表示没有正文。 见w3c rfc
204响应绝不能包含消息体,因此总是在头字段后面的第一个空行终止。
这意味着在发送回复时,容器未考虑正文或您的客户在阅读状态后会丢弃。
一种方法是在可能的情况下在网络浏览器中检查此响应。使用Chrome中的火虫或类似工具,您可以实际检查响应。