我今天更新了手機薑餅(2.3.2),並啓動了一個我開發的應用程序,看到它沒有加載它的數據。該應用程序運行良好,我已經測試從1.6到2.2的每個其他版本的Android,但然後在薑餅IOException。有人知道GZipInputStream或URL.openStream()中是否發生了變化?GZIPInputStream在Android 2.3中失敗並出現IOException異常,但在以前的所有版本中工作正常?
有問題的代碼是類似以下內容:
InputStream in = null;
GZIPInputStream zin = null;
URL url = null;
try {
url = new URL("http://www.test.com/gzipped_data.gz");
in = url.openStream();
zin = new GZIPInputStream(in);
}
catch (MalformedURLException e) {
return false;
}
catch (IOException e) {
return false;
}
在1.6〜2.2,此代碼工作正常,在2.3我得到一個IOException,使用一個關於魔塊是不正確的消息。我假設openStream發生了一些變化,這些數據混淆了MIME類型或其他內容。我讀過其他openStream並不是處理HTTP連接最可靠的方法,所以這可能是重寫我的連接代碼的好藉口。
工作正常,如果我更改代碼使用HttpClient並使用HttpGet請求。 URL.openStream()函數中必須有一些內容被破壞。哦,希望這會幫助別人節省一些時間。 – 2011-02-28 03:45:03