繁体   English   中英

如何使用Jersey Client将HTTP 400响应解析为Java类?

[英]How to parse HTTP 400 response using Jersey Client into a Java Class?

我正在使用Jersey客户端与Facebook Graph API进行交互。 Jersey客户端帮助我将JSON响应解析为Java类。

Facebook有时会发送400响应以及有关400响应原因的有用信息。 例如: {"error":{"message":"Error validating application. Cannot get application info due to a system error.","type":"OAuthException","code":101}}

泽西岛只是抛出异常并吃掉响应的有用部分:-(

我如何让它将JSON解析为Java类,其中的字段对应于有用的错误信息?

您可以使用ObjectMapper来实现此目的。 基本上,创建一个与JSON中的内容匹配的对象,并使用mapper的readValue()方法将JSON响应转换为对象。

这段代码有效:

try {
  User user = user_target
      .request()
      .get(User.class);
  System.out.println(user);
} catch (ClientErrorException primary_exception) {
  try {
    ErrorResponse error_response = primary_exception.getResponse().readEntity(ErrorResponse.class);
    System.out.println(error_response);
  } catch (ClientErrorException secondary_exception) {
    System.err.println("Secondary Exception: " + secondary_exception.getMessage());
    throw new ThisAppException("Secondary Exception", secondary_exception);
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM