java.io.IOException: Attempted read from closed stream
前言:
代码如下,执行的时候提示“java.io.IOException: Attempted read from closed stream.”
public static JSONObject post(String url,StringBuffer params,String token ){
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        HttpPost httpPost = new HttpPost(url + "?" + params);
        httpPost.setHeader("Content-Type", "application/json, text/plain, */*");
        httpPost.setHeader("Authorization",token);
        // 响应模型
        CloseableHttpResponse response = null;
        try {
            // send the Post Request
            response = httpClient.execute(httpPost);
            HttpEntity responseEntity = response.getEntity();
           if (responseEntity != null) {
                System.out.println("响应内容长度为:" + responseEntity.getContentLength());
                System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
                String jsonString = EntityUtils.toString(responseEntity);
                resBody = JSONObject.fromObject(jsonString);
            }
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //release resource
            release(httpClient,response);
        }
        return resBody;
    }
原因
response.getEntity()所得到的流是不可重复读取的,所得的实体只能读取一次,读取一次后,流就关闭了。EntityUtils.toString(responseEntity)被调用一次后就会自动销毁,而我调用了2次,所以就报错了。
System.out.println("响应内容为:" + EntityUtils.toString(responseEntity));
String jsonString = EntityUtils.toString(responseEntity);
解决方法
把这2个输出脚本改为如下即可,只要调用一次就好:
  String jsonString = EntityUtils.toString(responseEntity);
  System.out.println("响应内容为:" + jsonString);
												
											java.io.IOException: Attempted read from closed stream的更多相关文章
- java.io.IOException: Attempted read from closed stream解决
		
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...
 - 使用HttpClient出现java.io.IOException: Attempted read from closed stream
		
问题描述: 使用httpClient时候,出现java.io.IOException: Attempted read from closed stream. 原始代码: public static S ...
 - java.io.IOException: Attempted read from closed stream. 异常,解决
		
在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream. 异常,解决 原因是EntityUti ...
 - 在HttpClient请求的时候,返回结果解析时出现java.io.IOException: Attempted read from closed stream.  异常,解决
		
原因是EntityUtils.toString(HttpEntity)方法被使用了多次.所以每个方法内只能使用一次.
 - java.io.IOException: Stream closed
		
今天在做SSH项目的时候,出现了这个错误.百思不得其解,网上的答案都不能解决我的问题-.. 后来,一气之下就重新写,写了之后发现在JSP遍历集合的时候出错了. <s:iterator value ...
 - java.io.IOException: Stream closed解决办法
		
1.出现这个bug的大体逻辑代码如下: private static void findMovieId() throws Exception { File resultFile = new File( ...
 - java.io.IOException: Messenger was closed
		
程序运行一段时间后抛出异常java.io.IOException: Messenger was closed,不知道是啥原因? ———————————————————————————————————— ...
 - Caused by: java.io.IOException: Filesystem closed的处理
		
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to rename output from: hdfs://nameservice/u ...
 - java.io.IOException: read failed, socket might closed or timeout, read ret: -1
		
近期项目中连接蓝牙之后接收蓝牙设备发出的指令功能,在连接设备之后,创建RfcommSocket连接时候报java.io.IOException: read failed, socket might c ...
 
随机推荐
- python学习笔记3-列表
			
# 1.列表长度可变,内容可修改 a = [0,1,2,3] a[0] = 'a0' a # ['a0', 1, 2, 3] # 2.添加元素 # 2.1列表末尾添加元素 a.append(4) a ...
 - @CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy
			
在spring jpa audit 中,在字段或者方法上使用注解@CreatedDate.@CreatedBy.@LastModifiedDate.@LastModifiedBy,当进行实体插入或者更 ...
 - tar打包
			
进入到目录里,执行下面的命令,可以把目录内的所有内容打包 tar -cvf 111.tar *
 - Vue + webpack 项目实践
			
Vue.js 是一款极简的 mvvm 框架,如果让我用一个词来形容它,就是 “轻·巧” .如果用一句话来描述它,它能够集众多优秀逐流的前端框架之大成,但同时保持简单易用.废话不多说,来看几个例子: & ...
 - zt (stack overflow 介绍)
			
这是「解密 Stack Overflow 架构」系列的第一篇,本系列会有非常多的内容.欢迎阅读并保持关注. 为了便于理解本文涉及到的东西到底都干些了什么,让我先从 Stack Overflow 每天平 ...
 - KubeCon + CloudNativeCon论坛2019上海
			
2019年,KubeCon + CloudNativeCon和Open Source Summit在将在中国共同举办一场活动. In 2019, KubeCon + CloudNativeCon an ...
 - Maven 学习笔记-maven属性
			
Maven有六类属性: 1)内置属性 主要有两个常用内置属性 ${basedir}:表示项目根目录,即包含pom.xml文件的目录: ${version}:表示项目版本: 2)POM属性 ${M2_H ...
 - vue进阶--外卖商家页
			
一.准备工作 1.vue特性:轻量级.简洁.高效.组件化.数据驱动 2.技术分析:使用vue- resource与后端交互(ajax通信,ie9+) 使用vue-router作为前端路由 bet ...
 - 【转载】SVN使用教程总结
			
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
 - UIElementImageShot
			
MemoryStream memStream = new MemoryStream(); System.Windows.Media.Imaging.RenderTargetBitmap bmp = n ...