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

开发者社区> 问答> 正文

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

小旋风柴进 2016-03-05 15:11:34 3822

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库中取出数据流然后返回给安卓客户端接收并保存成文件!

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

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

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题