所以对于某些人来说这可能是一个愚蠢的问题,但我有这个响应头:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Atr: 10
X-Atr2: 1
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Tue, 29 Mar 2016 09:17:26 GMT
以及随之而来的结果:
{"site": [
{
"id": "1",
"name": "James"
},
{
"id": "2",
"name": "Katia"
},
{
"id": "3",
"name": "Sam"
}
我想做的是更改HTTP/1.1 200 OK,以防万一我得到这个,我得到类似HTTP/1.1 206 you have some results的内容同时显示 JSON 结果。如果我们没有任何结果,则如下所示:HTTP/1.1 400 未找到任何结果 并且 JSON 结果将如下所示:
[]
所以我尝试过以下:
if (response.getSite().size() <= 0) {
responseHttp.sendError(HttpServletResponse.SC_ACCEPTED, "you have some results");
} else {
responseHttp.sendError(HttpServletResponse.SC_ACCEPTED, "you have some results");}
问题是,在这两种情况下,它都编辑了 HTTP/1.1,但不显示任何消息,也不显示 JSON 结果。
希望我能很好地解释我的问题,谢谢您的时间和帮助。
最佳答案
您只需相应地设置状态代码和消息即可。您确实为这两种情况设置了 SC_ACCEPTED。
顺便说一句。 SC_ACCEPTED
是 202。
对于“未找到任何结果”,您可以采用 SC_NOT_FOUND
(404);
或者,您可以只使用整数
您可以找到SC_...
值here .
如果您想发送消息和 json,您可能需要将 json 字符串嵌入到消息中。否则,您可能需要只发送正文中的 json,并将消息移至 header 中的 HTTP 状态描述。 sendError(int sc, String msg)
方法创建一个类似 HTML 的页面,其中嵌入了您的消息(请参阅 here )。
关于java - http响应头信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280512/