当前位置: 首页 > 面试题库 >

发送错误消息作为JSON对象

暴向笛
2023-03-14
问题内容

我有两个servlet:第一个servlet与客户端相似,并创建了一个HttpURLConnection以调用第二个servlet

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

response.sendError(code, "{json-object}")

但是在第一个servlet中,当我读取getResponseMessage方法错误时,我只是得到标准的HTTP消息,而不是作为字符串的json对象。

如何获取json字符串?


问题答案:

HttpServletResponse#sendError()javadoc:

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

因此,使用这种方法,除了自己从HTML响应中提取消息外,您别无选择。但是,JSoup可能对此有用。

为了实现所需的功能,您需要设置错误代码并自己编写响应,例如

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

代替code您也可以为此使用HttpServletResponse.SC_XXX常量之一。



 类似资料:
  • 我正在使用postman查看Twilio中发送消息api的响应格式。我使用的Api是https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages。我已经输入了基本的身份验证参数(帐户\u Sid和AuthToken作为用户名和密码),json请求格式为 但我得到的错误是21603,上面写着“需要一个‘发件人’电话号码”。你能告诉我

  • 我订阅了 在我的例子中,用户没有通过身份验证,但从这里 虽然用户目标通常意味着一个经过身份验证的用户,但它并不是严格要求的。不与经过身份验证的用户关联的WebSocket会话可以订阅用户目的地。在这种情况下,@sendtouser注释的行为与broadcast=false完全相同,即只针对发送正在处理的消息的会话。 未捕获此异常。所以我尝试使用直接将其发送给用户。 我基本上想做的是: 某些内容应该

  • 我是Kafka新手,mymodel类用户[请求处理失败;嵌套异常为org.apache.Kafka.common.errors.SerializationException:无法将class model.User的值转换为value.serializer中指定的类org.apache.Kafka.common.serialization.StringSerializer],根本原因是java。Cl

  • 我在使用discord机器人添加此发送消息时遇到了一个奇怪的错误。我在学习Scratch教程 结果:- `(节点:8480)未经处理的PromisejectionWarning:DiscordAPIError:在C:\Users\Deepanshu\node\u modules\discord处缺少访问权限。js\src\client\rest\RequestHandlers\Sequential

  • 接口说明 轻推轻应用/订阅号支持发送文本、图片、文本卡片、图文、key-value、文件、待办等消息类型。本接口针对各种消息类型和发送的对象(单发、群发以及给部分人发送)进行了定义。 注:openid是用户关注某个轻应用/订阅号后生成的唯一id,单发和给部分人发送消息必须携带此参数,可以通过如下接口来获取: 根据qt_code获取用户基本信息 获取使用者列表 通过userId获取openid 消息

  • 主动发送消息 use EasyWeChat\Kernel\Messages\TextCard; // 获取 Messenger 实例 $messenger = $app->messenger; // 准备消息 $message = new TextCard([ 'title' => '你的请假单审批通过', 'description' => '单号:1928373, ...