在使用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();里的數據,只能用下面這個方法:
//好像是EntityUtils只能使用一次,使用了EntityUtils.toByteArray()方法,上面就不能再使用EntityUtils.toString()方法了,不然EntityUtils.toByteArray()方法也拿不到數據
byte[] byteData = EntityUtils.toByteArray(response.getEntity());//拿到返回結果字節流
字節流是能拿到了,看來也只能處理字節流了