0

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

1.解析主页(使用HttpURLConnection,connect(),do stuff,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

4

2 回答 2

4

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

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

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

于 2011-07-08T15:47:24.913 回答
0

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

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

于 2011-03-28T18:14:29.500 回答