java调用构建器如何将响应作为字符串进行记录?

问题描述 投票:0回答:1

我们从一个我们试图编组成一个对象的其他API中获取json。但是,因为这并不总是有效,我们还希望将每个原始响应主体记录为一个字符串(或者只有当它是一个编组异常时)。例如:

Response response = invocationBuilder.get();
int statusCode = response.getStatus();
if (statusCode != 200 && statusCode !=201 && stausCode != 404) {
    logger.error("Got a strange response: " + response.????
}

// this may fail with exceptions...
MyResponseDO myResponse = response.readEntity(MyResponseDO.class);

return myResponse;

有什么建议?我无法在Response类上看到任何有用的东西(没有getBody()或类似的东西)。

java json rest
1个回答
0
投票

由于JSON只是一个字符串,因此可以映射到字符串类型。您可以使用以下方式获得原始响

response.readEntity(String.class);

注意:readEntity关闭数据流,这意味着你不能再次调用readEntity。来自java doc

从此方法返回的消息实例将被缓存,以便通过getEntity()进行后续检索。除非提供的实体类型是输入流,否则此方法会在打开时自动关闭未使用的原始响应实体数据流。

© www.soinside.com 2019 - 2024. All rights reserved.