HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来
时间:2019-11-14
本文章向大家介绍HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来,主要包括HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在使用HttpPost httpPost = new HttpPost(postUrl);的post请求后,拿到返回的response,response返回200成功。
到此没有任何问题。
response返回的内容使用HttpEntity对象接收:
//从response中拿返回数据对象 HttpEntity entity = response.getEntity();
// 打印响应内容
resultStr = EntityUtils.toString(response.getEntity(), "UTF-8");
System.out.println(resultStr);
那么问题来了,他妈的,entity对象里的内容可以打印出来,里面是有东西的。但我要获取他的数据流:InputStream is = entity.getContent();//获取到返回的pdf文件流
is输入流里面是个空的。。。。空的。。。。空的。。。。。
我不信是空的,打印entity对象的内容长度:
System.out.println("文件大约:"+(entity.getContentLength()/1024)+"K"); //打印出的是0k,我操,没道理啊 System.out.println("type:" +entity.getContentType() + ",长度:" + entity.getContentLength()); //对象类型是application/pdf,长度是-1,也就是说还是空的。。。。。
不阔能,他妈的上面明明打印出内容了,长度是空的,is输入流read()读数据也是-1空的,百度了很久也没查到原因
解决办法找到了,但读HttpEntity里的内容 是空的有点搞不清为什么。好像是使用
EntityUtils.toString(response.getEntity(), "UTF-8");这个方法,把这个方法去掉也一样啊,反正搞不清
解决办法,想拿到response.getEntity();里的数据,只能用下面这个方法:
byte[] byteData = EntityUtils.toByteArray(response.getEntity());//拿到返回结果字节流
字节流是能拿到了,看来也只能处理字节流了
原文地址:https://www.cnblogs.com/spll/p/11857835.html
- 判断图片是否加载完成
- Spring Cloud Config客户端配置细节
- Spring Cloud Config服务端配置细节(二)之加密解密
- Redis3 cluster 集群配置测试
- Spring Cloud Config服务端配置细节(一)
- 分布式配置中心Spring Cloud Config初窥
- Git标签管理
- Docker容器如何共享数据
- Git工作区储藏兼谈分支管理中的一个小问题
- 轻量级容器Docker - 创建nginx容器
- Git关联远程仓库
- h5新功能data-*,好好利用,还能做数据双向绑定
- nginx+tomcat负载均衡配置
- Docker配置文件Dockerfile详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 公共钥匙盒-CSP数组排序练习
- 疫情这么严重,还不待家里学Numpy和Pandas?
- CSP-201812-2-小明放学-Java
- Mac怎么设置docker国内镜像源来加速下载?
- 适合数据分析面试笔试入门的编程题
- 女同事问狗哥什么是线程池的阻塞队列?
- BAT某厂数据分析终面面经
- 通过常见的业务掌握SQL高级功能
- 滴滴出行数据分析师面试经验
- 如何制作推论统计分析报告
- 全局唯一 ID 服务的分布式ID生成系统
- SpringBoot 国际化实现跨地区的多语言切换
- MySQL 死锁产生原因和解决方法
- 手把手教你ShardingSphere和Mybatis拦截器实现特殊字段动态切换加密
- Swagger3.0官方starter诞生,可以扔掉那些野生starter了