android - Ice Cream Sandwich 中 HttpURLConnection 的 FileNotFoundException

标签 android httpurlconnection filenotfoundexception

我有一个 Android 应用在 Android 2.x 和 3.x 上运行良好,但在 Android 4.x 上运行时失败。

问题出在这段代码中:

URL url = new URL("http://blahblah.blah/somedata.xml");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();

InputStream inputStream = urlConnection.getInputStream();

当应用程序在 Android 4.x 上运行时,getInputStream() 调用会导致 FileNotFoundException。当相同的二进制文件在早期版本的 Android 上运行时,它会成功。这些 URL 在 Web 浏览器和 curl 中也可以正常工作。

显然 HttpURLConnection 在 ICS 中有所改变。有谁知道发生了什么变化,和/或修复可能是什么?

最佳答案

尝试删除 setDoOutput 调用。取自此博客: a blog

编辑:使用 POST 调用时需要这样做。

关于android - Ice Cream Sandwich 中 HttpURLConnection 的 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365829/

相关文章:

java - 收到此 `Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index`

java - 在 java 中为 ImageView 设置图像的代码?

java - Facebook Graph Java HttpsURLConnection 返回错误 400

java - 从图库中选取图像时出现 FileNotFoundException

java - BugSense 崩溃了

java - 如何在 onCreate/主线程中获取房间列表的大小?

java - Android Native初学者: Where can I find more about these types of syntax (java interface,继承等)

java - 如何使用 Web 客户端获取经过数据验证的页面

java - 在 Android 中向 urlConnection 添加 header

c# - AppDomain DoCallBack FileNotFound 异常