在使用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()/)+"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();里的数据,只能用下面这个方法:

//好像是EntityUtils只能使用一次,使用了EntityUtils.toByteArray()方法,上面就不能再使用EntityUtils.toString()方法了,不然EntityUtils.toByteArray()方法也拿不到数据
byte[] byteData = EntityUtils.toByteArray(response.getEntity());//拿到返回结果字节流

字节流是能拿到了,看来也只能处理字节流了

HttpClient的使用今天遇到一个巨坑——HttpEntity内容取不出来的更多相关文章

  1. bat调用bat的一个巨坑

    [一个巨坑] a.bat的内容:echo 1b.batecho 2执行结果:运行a.bat时,输出1,然后调用b.bat, 但是 echo 2 显示不出来. bat怎么调用bat文件并返回? 例如主文 ...

  2. SpriteKit在复制节点时留了一个巨坑给开发者,需要开发者手动把复制节点的isPaused设置为false

    根据When an overlay node with actions is copied there is currently a SpriteKit bug where the node’s is ...

  3. 有关docker新版的icc、iptables的一个巨坑

    之前玩过docker的icc=false.iptables=true 按照这两个参数配置之后,想指定两个特定的容器通讯,直接用--link即可. 但最近我在下载了1.12新版的docker,这个不奏效 ...

  4. NGUI 9宫格输入的一个巨坑

    UILabel 中的maxlines = 0,输入没有问题.如果maxlines=1,输入出错

  5. better-scroll之吸顶效果巨坑挣扎中

    今天和大家分享下better-scroll这款移动端用来解决各种滚动需求的插件(目前已经支持PC) 关于其中的API大家可以去官网看下  这里就给大家介绍几种常用的以及需要注意的点是什么 首先说一下b ...

  6. (杭电 2054)A==B?(这真是个巨坑)

    A == B ? Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. HttpClient的巨坑

    之前做项目的时候,调用api都是使用的HttpWebRequest 最近一个项目改用HttpClient,用了之后,感觉很坑. 1.高并发情况下,造成tcp连接占用的端口无法释放(时间为2MSL,此时 ...

  8. 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案

    相信很多小伙伴都在android开发中遇到调用jni的各种巨坑,因为我们不得不在很多地方用到第三方库so文件,然而第三方官方通常都只会给出ADT环境下的集成方式,而谷歌亲儿子android studi ...

  9. 【单页应用巨坑之History】细数History带给单页应用的噩梦

    前言 在我们日常的网页浏览中,我们非常喜欢做一个操作:点击浏览器的前进后退在Ajax技术出现后,有些时候前进后退就会给开发者带来困扰,甚至一些开发者试图去干掉History随着Html5的发展,移动端 ...

随机推荐

  1. 一文学会JVM性能优化

    实战性能优化 1 重新认知JVM 之前我们画过一张图,是从Class文件到类装载器,再到运行时数据区的过程,现在咱们把这张图不妨丰富完善一下,展示了JVM的大体物理结构图. 执行引擎:用于执行JVM字 ...

  2. .netcore 中使用开源的AOP框架 AspectCore

    AspectCore Project 介绍 什么是AspectCore Project ? AspectCore Project 是适用于Asp.Net Core 平台的轻量级 Aop(Aspect- ...

  3. vue中使用props传递参数

    通常,父组件的模板中包含子组件,父组件要正向地向子组件传递数据或参数,子组件收到后根据参数的不同来渲染不同的内容,或者执行操作. 这个正向传递数据的过程是通过props来实现的. 在组件中,子组件使用 ...

  4. RF自动化测试之元素封装

    自动化测试均需要遵循由点到面的规则,然而对于UI自动化,点是最容易发生变化的,如果使用硬链接,那么每次元素的修改都必须修改代码,这对于代码功底薄弱的测试工程师来说,是较为困难的,所以自动化测试需要对底 ...

  5. Python添加邮件附件并通过邮件发送测试报告

    import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText c ...

  6. Java之Random类

    什么是Random类 此类的实例用于生成伪随机数,使用此类中的方法能够得到一个随机数. Random使用步骤 查看类 java.util.Random :该类需要 import导入使后使用. 查看构造 ...

  7. 怎么才能从github上面快速clone代码

    搜了很多教程,包括该本地host配置.在git上输入命令.使用githubdesktop等等方法,最后都不行,这位朋友讲的,先把仓库clone到码云上面,再从码云上面拉代码,速度会非常快. 传送门 g ...

  8. 移位寄存器及verilog代码

    通用移位寄存器 作用:后续补全 )( :] Data_out, output MSB_out, LSB_out, :] Data_in, input MSB_in, LSB_in, input s0, ...

  9. LG4158 「SCOI2009」粉刷匠 线性DP

    问题描述 LG4158 题解 设\(opt[i][j][k]\)代表到\((i,k)\)刷了\(j\)次的方案数. 一开始DP顺序有点问题,调了很长时间. 务必考虑清楚DP顺序问题 \(\mathrm ...

  10. Zookeeper搭建集群及协同

    Zookeeper搭建集群及协同 协同的实现 首先启动一个zkCli客户端(zkCLi-1),创建一个workers节点. create /workers 使用ls监控当前节点. ls -w /wor ...