java利用HttpURLConnection读取二进制并返回!-问答-阿里云开发者社区-阿里云

开发者社区> 小旋风柴进> 正文

java利用HttpURLConnection读取二进制并返回!

2016-03-05 15:11:34 3842 1

String urlStr ="http://192.168.1.111:8083/down/1.pdf";
URL url = new URL(urlStr);
conn = (HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
//获取下载文件的总大小
fileSize = conn.getContentLength();
System.out.println("fileSize "+fileSize);
...文件保存

这样是能得到文件长度和下载的,但是我的pdf文件是作为二进制存储到oracle数据库中的,而我用上边这个方法的话必须要先从服务器把数据库中的二进制保存成文件,然后再把文件地址传入上边的方法,才能成功下载,本来以为客户端发送连接请求,服务器收到请求后,先用输入流从数据库读出数据,然后输出流输出,客户端就会收到数据流,可是试了下返回的conn.getContentLength()都为-1,读取不到HttpURLConnection内容的长度!难道是返回类型不对吗?我应该用什么类型返回或者输出?求各位大侠不吝赐教,小弟万分感谢!简单点就是服务器收到请求后直接从oracle库中取出数据流然后返回给安卓客户端接收并保存成文件!

取消 提交回答
全部回答(1)
  • 小旋风柴进
    2019-07-17 18:53:34

    你的Conn是URL,如果文件数据还在数据库上,相当于说文件没有建立,URL指向文件地址肯定也读不到数据。URL是定位到文件资源,要用url conn,就要有文件存在。要用数据库存的数据,只能用其他IO读取数据。

    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 975244浏览量 回答数 17

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 223061浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157135浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333948浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292366浏览量 回答数 110

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643284浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256922浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192372浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302656浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204037浏览量 回答数 2
2728
文章
6591
问答