JAVA 使用 IOUtils.toString 和 HttpEntity.getContent() 将 InputStream 转换为 null

2023-12-24

我有奇怪的情况 我有 HTTP 响应,我尝试将其转换为字符串,问题是第一次它正常工作,但第二次 InputStream 数据为空
我只有response1中的数据

InputStream  is = entity.getContent();  
String response1 = IOUtils.toString(is, "utf-8");  // Here every thing is fine 
String respons2 = IOUtils.toString(is, "utf-8");   // Here the response2 is empty 
and is (InputStream) holding no data  

这里出了什么问题我需要能够将数据保存在 InputStream 中以供将来在代码中使用


然而,在检查 javadoc 时,您的需求不是很清楚httpEntity.getContent https://hc.apache.org/httpcomponents-core-ga/httpcore/apidocs/org/apache/http/HttpEntity.html#getContent()我看到以下内容:

返回实体的内容流。可重复的实体是 期望为每次调用创建一个新的 InputStream 实例 这种方法,因此可以多次使用。实体 不可重复的预计会返回相同的 InputStream 实例,因此不能被多次消耗。

您是否通过调用检查 httpEntity 是否可重复

httpEntity.isRepeatable()

如果属实,您可以执行以下操作:

InputStream  is = entity.getContent();  
String response1 = IOUtils.toString(is, "utf-8");

// retrieve a new instance of inputStream
is = entity.getContent();
String response2 = IOUtils.toString(is, "utf-8");    

最后但并非最不重要的一点(因为我不知道您的确切需求),如果实体能够多次生成其数据,则前面的代码将会有所帮助,但您仍然应该评估以下之间的成本:

  • 消耗数据一次并将其保存在字符串中
  • 多次消耗数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA 使用 IOUtils.toString 和 HttpEntity.getContent() 将 InputStream 转换为 null 的相关文章

  • 如果列名不同,则一对多休眠连接

    我有三个具有以下结构的表 合同 gt Contract id 主要 customer company id Vendor company id 公司 gt Company id 主要 创建日期 创建者 Company Timeline gt
  • 如何在 Java 中访问嵌套的 HashMap?

    我有一个 Java 中的 HashMap 其中的内容 你们可能都知道 可以通过以下方式访问 HashMap get keyname 如果一个 HashMap 位于另一个 HashMap 中 即嵌套的 HashMap 我将如何访问内容 我可以
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • 如何在log4j的配置文件中为文件附加器提供环境变量路径

    我有一个log4j xml配置文件 和一个RollingFileAppender我需要提供用于存储日志的文件路径 问题是我的代码将作为可运行的 jar 部署在 Unix 机器上 所以如果我传递这样的参数 value logs message
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • Android WebView文件上传

    我正在开发一个 Android 应用程序 基本上它是一个WebView和一个进度条 Facebook 的移动网站 m facebook com 已加载到WebView 当我单击 选择文件 按钮上传图像时 没有任何反应 我已经尝试了所有的解决
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • maven 无法下载 jacoco 0.7.10-SNAPSHOT jar

    我对此感到困惑 我的 pom xml 中有这个
  • Java - JPanel 内有边距和 JTextArea

    我想创建这样的东西 主面板有其边距 x 并且 TextArea 位于该面板的中心 几乎填满了面板 底部是另一个具有自定义尺寸 高度 y 的面板 可以使用某些快捷方式将其切换为可见和不可见 底部面板有 FlowLayout 和几个元素 问题是
  • LocalDate 减去 period 得到错误的结果

    LocalDate减去一个Period 如 28年1个月27天 得到错误的结果 但减去一个Period 只有天单位 如 10282 天 得到正确的结果 有什么需要注意的吗 public static void main String arg
  • java.lang.Object的hashCode具体使用的算法是什么

    中使用的算法是什么JVM实施java lang Object的隐含的hashCode 方法 OpenJDK or Oracle JDK答案中首选 它依赖于实现 并且在很大程度上 该算法是entirely取决于实施 只要它是一致的 但是 根据
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 从 HttpClient 3 转换为 4

    我已经成功地对所有内容进行了更改 但以下内容除外 HttpClient client HttpPost method client new DefaultHttpClient method new HttpPost url InputStr
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • Jetty Plugin 9启动不喜欢icu4j-2.6.1.jar

    我对 mortbay 的 Maven jetty 插件 6 有相同的配置
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • 在 Freemarker 模板中检查 Spring 安全角色和记录的用户名

    有谁知道 freemarker 标签来检查 freemarker 文件中的 spring 安全角色和用户名 我从网络上的几个资源中发现以下代码将打印登录的用户名 但它没有打印用户名 而是打印 登录为
  • java中的预增量/后增量

    有人可以帮助我理解为什么 int i 1 int j 1 int k 1 int l 1 System out println i i System out println j j System out println k k System
  • @Embeddable 中的 @GenerateValue

    我已将实体的 id 分离到一个单独的 Embeddable 类中 该实体如下 Entity Table name users public class Users EmbeddedId private Users pk id private

随机推荐

  • 端子输出安全逃生功能

    我正在寻找相当于网址编码 http docs python org library urllib html urllib quote plus对于终端输出 我需要确保我 可能 从外部源打印的垃圾字符最终不会在我的终端上做一些奇怪的事情 所以
  • DataView 和原型继承

    根据我在网上的了解 在 JavaScript 中扩展对象的一种方法是首先克隆它的原型 然后将该原型设置为子类的原型 但它似乎在这里不起作用 Create constructor function Packet opcode size Dat
  • Scala 中的 Typedef

    如何在 Scala 中定义类型 喜欢 type MySparseVector Int Double 在哈斯克尔或 typedef MySparseVector std list
  • 数据库设计头脑风暴:销售价格

    我需要创建一个数据库解决方案来提供产品折扣 当前表 Products Columns ProductId ProductTypeId ReleaseDate ProductPrices Columns ProductPriceId Prod
  • 对于 2.4MB XML 文件,您会推荐哪个 Ruby XML 库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个 2 4 MB 的 XML 文件 是从 Microsoft Project 导出的 嘿 我是这
  • Java 泛型:不兼容的类型

    我有一个通用类MyClass
  • MEF 与任何 IoC

    查看 Microsoft 的托管扩展性框架 MEF 和各种 IoC 容器 例如 Unity 我无法看出何时使用一种解决方案而不是另一种解决方案 更具体地说 MEF 似乎可以处理大多数 IoC 类型模式 并且不需要像 Unity 这样的 Io
  • .NET MAUI 应用程序的 Android 包签名

    我正在尝试将 NET MAUI 应用程序的捆绑文件上传到 Google Play 但收到以下错误 您的 Android App Bundle 使用错误的密钥进行签名 确保您的 App Bundle 已使用正确的签名密钥进行签名 然后重试 你
  • 从 MySQL 到 IndexedDB

    再会 我不确定我的问题是否可能 这就是我问的原因 我正在开发一个应用程序 它在线时使用 PHP MySQL 但离线时使用 indexedDB 好吧 这就是目标 对于用户来说 只是读取数据库 无需写入任何内容 在线时 我想填充 indexed
  • 使用重复模式填充 python pandas 数据框中缺失的行

    我正在尝试修复 pandas DataFrame 中丢失的行 如下所示 import pandas as pd df pd DataFrame 1 1 2 3 4 2 4 5 6 7 3 1 3 2 5 4 5 6 7 3 1 3 4 5
  • [Dead]如何利用异步回发成功 POST 到旧的 ASP.NET 站点

    更新 不幸的是我从来没有机会解决这个问题 然而 下面有一些有趣的回应 值得其他想要做类似事情的读者尝试 我正在尝试解析来自运行 ASP NET 的站点的数据 该站点有一个登录页面 我已成功遍历该页面 使用合法帐户 并为其存储了 cookie
  • 如何在 Postgres 数据库中存储 UTF-16 字符?

    我正在尝试存储一些文本 例如 在 Postgres 数据库中 但是当检索该值时 它在屏幕上显示为 我不知道为什么会这样做 我的印象是它是 UTF 8 中不支持的字符 但在 UTF 8 中是支持的 但是 从第一个答案来看 这是一个错误的假设
  • 在 python 3 中分析内存[重复]

    这个问题在这里已经有答案了 可能的重复 有没有适用于Python3的工作内存分析器 https stackoverflow com questions 7758699 is there any working memory profiler
  • OpenAI 健身房的突破-v0“暂停”

    在 OpenAI 健身房环境中训练时 我认为环境有时会 停止 对于连续的许多帧 没有球可见 停止生成 这是健身房环境的错误吗 这是 Breakout v0 游戏的一部分吗 我还想知道 Breakout v0 中可能采取的行动是什么 我想通了
  • 从另一个类中的线程更新 Android UI

    我在这里看到了一些提出类似问题的问题 但我还没有看到合适的答案 许多人询问如何从线程更新 UI 但它们几乎总是与 UI 位于同一类中 我想做的是从另一个类中创建的线程更新 UI 我已经看到了所有的建议 例如异步 处理程序 可运行等 但我在单
  • AngularJs:http 请求的事件监听器

    由于我使用 Oauth2 来保护我的 Api 因此如果之前的访问令牌已过期 我需要在任何 http 请求之前获取新的访问令牌 到目前为止我还没有太多使用事件监听器 这是我现在所做的 请告诉我它是否正确 应用控制器 js app contro
  • Android 标记上的弹出窗口或布局

    我想在标记上放置自定义布局 到目前为止我得到了这个 default marker info window xml
  • 为什么 ngx-doc-viewer 在 angular10 中不显示 pdf 文件(文件位于本地磁盘上)?

    In my angular10我必须在其中显示PDF文件为preview 所以为此我正在使用ngx doc viewer 我的组件看起来像这样 组件 html
  • 在负载平衡服务器上加载时,ASP.NET 站点有时会冻结和/或在页面顶部显示奇怪的文本

    我有多个服务器 开发服务器 2 个测试服务器 2 个产品服务器 运行相同的 asp net 站点 测试服务器和生产服务器处于负载平衡对中 prod1 与 prod2 test1 与 test2 测试服务器对在大约十分之一的页面加载期间表现出
  • JAVA 使用 IOUtils.toString 和 HttpEntity.getContent() 将 InputStream 转换为 null

    我有奇怪的情况 我有 HTTP 响应 我尝试将其转换为字符串 问题是第一次它正常工作 但第二次 InputStream 数据为空我只有response1中的数据 InputStream is entity getContent String