java - http响应头信息

标签 java json http

所以对于某些人来说这可能是一个愚蠢的问题,但我有这个响应头:

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/

相关文章:

javascript - 在 Nashorn 中跨上下文共享原生 JavaScript 对象

C#使用登录从网络下载文件

java - 如何从服务器获取数据作为 json 数组并将其转换为 java 数组以在 android 应用程序中使用

javascript - 将 PHP 数组回显到 Javascript

javascript - 如何进行 6 个以上并发 REST API 调用

http - 无法访问前端应用程序中的自定义响应 header

java - com.jcraft.jsch.JSchException : UnknownHostKey

java - 为平台中立的消费保留时间戳的首选方式

java - block 大小和页面大小之间的差异 Spring Batch

json - 如何覆盖 Json.Net 模型绑定(bind)异常消息以实现本地化?