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

如何在Response上两次调用readEntity?

班建义
2023-03-14
问题内容

我现在正在做的结果是:

java.io.IOException: stream is closed

在第二个readEntity()上,因为它在第一次读取后关闭了流。

这是我在做什么:

Response response = target.queryParam("start", startIndex)
   .queryParam("end", end)
   .request()
   .accept(MediaType.APPLICATION_XML)
   .header(authorizationHeaderName, authorizationHeaderValue)
   .get();

String xml = response.readEntity(String.class);
ourLogger.debug(xml);


MyClass message = response.readEntity(MyClass.class); //throws IOException

问题答案:

/您可以使用Response#bufferEntity(),这将允许您多次读取实体流。

Response response = ...
response.bufferEntity();
String s = response.readEntity(String.class);
MyEntity me = response.readEntity(MyEntity.class);
response.close();

更新资料

使用读取实体后,读取readEntity()结果将被缓存,并且可用于调用getEntity()。这些信息并不能真正回答OP的问题,但我认为添加信息非常有用。



 类似资料:
  • 我觉得有一个简单的解决办法,但由于某些原因,我不能把我的头围绕它。 我有一个情况,一个按钮必须先点击,才能点击另一个。用户为这2个JButtons选择的选项将决定程序的下一步。这意味着我必须调用actionListener两次,对吗?我如何在一个actionPerformed方法中做到这一点? 如果actionPerformed方法中的(e.getSource()==Square[1][4]&&e

  • 问题内容: 我想计算不超过n的平方和。假设n为4,则此代码生成一个列表,列出范围为0到4的地图对象: 轻松一点。现在在m上调用列表,然后求和: 意外的行为是,如果我再次运行最后一行,则总和为0: 我怀疑这是因为调用返回了一个空列表,但是我找不到这种行为的解释。有人可以帮我这个忙吗? 问题答案: 在Python 3中返回一个有状态的迭代器。有状态的迭代器在耗尽后可能只消耗一次,并且不产生任何值。 在

  • 问题内容: 我在Go中关注一个简单的Web服务器示例。 我插入了一条语句,使生成的代码如下所示: 问题是,每当我在Web浏览器中加载端口8000时,此函数就会被调用两次。这是一个问题,因为我打算在每次页面访问时增加一个计数器。通过这种行为,计数器将增加两次。OTOH,如果我这样做,它只会被调用一次。 我觉得我在这里失踪真的很愚蠢。 问题答案: 只需记录请求。您将意识到您的浏览器还请求/favico

  • 我仍在尝试将RXJava2用于多个订阅者使用的轮询服务。它工作得很好,除了它总是调用两次。 我尝试使用publish(1)、take(1)、share()、refCount()等,但结果总是一样。叫两次或多次。 我还是不明白为什么它叫了两次。新订阅服务器应该接收最新发出的值,并且只在更改后的值(如果hashmap更改了)返回为modified List。 我的民意调查可观察到(单例) 我的谓词用于

  • 我在android 4.0.3上遇到了一个问题(在4.1.2上运行良好)。我的活动中有一个广播接收器。当我发送广播时,方法onReceive()总是调用两次。请给我任何关于4.0和4.1广播接收器差异的建议

  • 问题内容: 是否有一种简短的方法可以在Python中连续两次或更多次调用函数?例如: 也许像: 问题答案: 我会: 的是其值为你不关心的变量约定。 您可能还会看到有人写: 但是,这样做会稍微贵一些,因为它会创建一个包含每次调用(即使是)的返回值的列表,然后将结果列表丢弃。我不建议使用,除非你 正在 使用的返回值的列表。