【问题标题】:FileNotFoundException while getting the InputStream during downloading file to SD card using URLConnection使用 URLConnection 将文件下载到 SD 卡期间获取 InputStream 时出现 FileNotFoundException
【发布时间】:2011-03-28 16:55:16
【问题描述】:

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

1.解析主页(使用HttpURLConnection,connect(),做事,disconnect(),使用数据),

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

在文章的情况下,第一步也很完美,第二步也很完美,但是当我尝试从特定 url 下载文件并将其保存到 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

【问题讨论】:

    标签: android inputstream httpurlconnection filenotfoundexception


    【解决方案1】:

    Oki .. 过了这么久没有答案.. :( 终于我自己找到了解决方案,所以我在这里发帖,因为希望有人能找到它的用途..

    在 URL 中我注意到很多 %20 所以在我使用它之前我用 URI.encode(fileURL) 对其进行编码 正如它在android dev pages 上描述的那样

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-12
        • 2011-07-19
        • 2015-03-27
        • 1970-01-01
        • 2015-12-27
        • 2018-08-23
        • 2011-03-25
        • 2015-05-19
        相关资源
        最近更新 更多