使用URLConnection将文件下载到SD卡时获取InputStream时出现FileNotFoundException

时间:2011-03-28 16:55:17

标签: android inputstream httpurlconnection filenotfoundexception

我正在开发具有以下工作流程的应用程序:

1.parsing主页(使用HttpURLConnection,connect(),做东西,断开连接(),使用数据),

2.点击我制作的链接,解析文章或根据链接下载文件。

第一步完美无缺在文章的情况下也是第二,但是当我试图从特定网址下载文件并将其保存到SD卡时,我在这行中得到了fileNotFoundException:

  InputStream inputStream = urlConnection.getInputStream();

我的指南(下载文件)是此处http://goo.gl/GTBOP解释的代码,我根据此操作的需要在清单中设置权限,加上在我检查MEDIA_MOUNTED&的任何下载操作之前MEDIA_MOUNTED_READ_ONLY状态似乎很合适。

所以..我在stackOverflow和其他地方读了很多关于这个问题的内容,我尝试了不同的建议,比如添加这些:

urlConnection.setRequestProperty("User-Agent","Mozilla/5.0 ( compatible ) ");
urlConnection.setRequestProperty("Accept","*/*");

System.setProperty("http.keepAlive", "false");

但没有成功。我仍然坚持使用fileNotFoundException。我试图从网页上捕获响应代码,它说404 ..?!

奇怪的是,如果我从任何其他网站硬编码链接到文件下载文件,没有任何麻烦。所以要明确我点击链接到fileurl变量,但在下一步我只是说fileurl =“somesite / somefile.ext”一切顺利..从网页浏览器我可以下载任何在我的应用程序中造成麻烦的文件所以我我很困惑问题出在哪里..

请问有什么建议吗? 10Q

2 个答案:

答案 0 :(得分:4)

Oki ..经过这么多时间没有回答这个...... :(最后我找到了自己的解决方案所以我在这里发帖因为有人希望能找到它的使用..

在URL中我注意到很多%20所以在我使用它之前我使用URI.encode(fileURL)编码它 正如android dev pages

所述

并且瞧..一切都很好.. :)谢谢大家贡献社区! ;)干杯

答案 1 :(得分:0)

  

404或Not Found错误消息是   HTTP标准响应代码   表明客户端能够   与服务器通信,但是   服务器找不到的是什么   请求。

所以这意味着唯一的事情 - 你的文件URL指向一个不存在的资源。怎么可能?我不知道。使用调试/日志记录找出你破坏网址的位置。