所以对某些人来说这可能是一个愚蠢的问题,如果不是全部,但我有这个回应标题:
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确定以防万一我得到类似 HTTP / 1.1 206你有一些结果的内容同时显示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结果。
希望我能很好地解释我的问题,感谢您的时间和帮助。
答案 0 :(得分:1)
您只需相应地设置状态代码和消息。你确实为这两种情况设置了SC_ACCEPTED。
顺便说一下。 SC_ACCEPTED
是202。
对于&#34;没有找到任何结果&#34;你可以SC_NOT_FOUND
(404);
或者你可以使用ints
您可以找到SC_...
值here。
如果要发送消息和json,可能需要将json字符串嵌入到消息中。否则,您可能只需要在正文中发送json并将消息移动到标头中的HTTP状态描述。方法sendError(int sc, String msg)
会创建一个类似HTML的页面,其中嵌入了您的消息(请参阅here)。
答案 1 :(得分:0)
我认为你的意思是你想要设置响应状态所以我建议使用类似的东西:
if (response.getSite().size() <= 0) {
responseHttp.sendError(HttpServletResponse.SC_BAD_REQUEST, "Bad Request");
} else {
responseHttp.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
//your other codes for sending JSON response goes here:
}