Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将错误消息作为JSON对象发送_Java_Json_Http_Servlets - Fatal编程技术网

Java 将错误消息作为JSON对象发送

Java 将错误消息作为JSON对象发送,java,json,http,servlets,Java,Json,Http,Servlets,我有两个servlet:第一个servlet类似于一个客户端,创建一个HttpURLConnection来调用第二个servlet 我想发送一个特殊的错误,格式类似于JSON对象,因此我以这种方式调用sendError方法: response.sendError(code, "{json-object}") 但是在第一个servlet中,当我使用getResponseMessage方法读取错误时,我只得到标准HTTP消息,而不是作为字符串的json对象 如何获取json字符串?来自: 服务器默

我有两个servlet:第一个servlet类似于一个客户端,创建一个
HttpURLConnection
来调用第二个servlet

我想发送一个特殊的错误,格式类似于JSON对象,因此我以这种方式调用sendError方法:

response.sendError(code, "{json-object}")
但是在第一个servlet中,当我使用
getResponseMessage
方法读取错误时,我只得到标准HTTP消息,而不是作为字符串的json对象

如何获取json字符串?

来自:

服务器默认创建响应,使其看起来像包含指定消息的HTML格式的服务器错误页面,将内容类型设置为“text/HTML”,保留cookie和其他标题不变。如果为与传入的状态代码相对应的web应用程序做出了错误页面声明,则将优先于建议的msg参数返回该声明

因此,使用这种方法,除了自己从HTML响应中提取消息之外,别无选择。然而,可能是在这方面

要实现您想要的,您需要设置错误代码并自己编写响应,例如

response.setStatus(code);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);

除了
code
之外,您还可以使用其中一个来进行此操作。

非常感谢。我对此表示怀疑,我发布了一个问题,您的建议是获取json字符串而不必在html代码中找到它的唯一方法。