我有一個Android應用程序,與Android 2.x和3.x正常工作,但它在Android 4.x上運行時失敗。FileNotFoundException爲冰淇淋三明治HttpURLConnection
的問題是在這部分代碼:
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的運行,在一FileNotFoundException
的getInputStream()
呼叫結果。當早期版本的Android上運行相同的二進制文件時,它會成功。這些網址在網絡瀏覽器中也可以正常使用,curl
也可以。
顯然在ICS中HttpURLConnection
已經發生了變化。有沒有人知道有什麼變化,和/或修補程序可能是什麼?
文檔說'setDoOutput(true)'暗示'setRequestMethod(「POST」)'。你的意思是? – 2012-02-20 18:34:40
它意味着做一個GET。 (我沒有編寫代碼,所以我不知道爲什麼'setDoOutput(true)'在那裏)。 – 2012-02-20 18:37:14
FWIW,'setRequestMethod(「GET」)'和'setDoOutput(true)'出現在很多示例中使用'HttpURLConnection'的代碼。它在哪裏記錄它強制POST? – 2012-02-20 18:54:45