java调用构建器如何将响应作为字符串进行记录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java调用构建器如何将响应作为字符串进行记录?相关的知识,希望对你有一定的参考价值。
我们从一个我们试图编组成一个对象的其他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()或类似的东西)。
答案
由于JSON只是一个字符串,因此可以映射到字符串类型。您可以使用以下方式获得原始响
response.readEntity(String.class);
注意:readEntity
关闭数据流,这意味着你不能再次调用readEntity
。来自java doc:
从此方法返回的消息实例将被缓存,以便通过getEntity()进行后续检索。除非提供的实体类型是输入流,否则此方法会在打开时自动关闭未使用的原始响应实体数据流。
以上是关于java调用构建器如何将响应作为字符串进行记录?的主要内容,如果未能解决你的问题,请参考以下文章
当我在我的应用程序中调用 API 时,它会向我显示数据作为响应,但在未来的构建器中,它无法向我显示数据
如果我必须进行REST调用并将响应值与UI进行比较,那么步骤定义将如何构建?
如何读取和复制 HTTP servlet 响应输出流内容以进行日志记录