오늘 휴대 전화를 진저 브레드 (2.3.2)로 업데이트하고 내가 개발 한 앱을 해고하여 데이터로드에 실패했는지 확인했습니다. 이 응용 프로그램은 1.6에서 2.2까지 테스트 한 Android의 다른 모든 버전에서 잘 실행되지만 진저 빵에서는 IOException이 발생합니다. 아무도 뭔가 GZipInputStream 또는 URL.openStream() 변경된 경우 알고 있습니까?GZIPInputStream은 안드로이드 2.3에서 IOException과 함께 실패하지만, 이전의 모든 릴리스에서 잘 작동합니까?
문제가있는 코드는 다음과 유사한 : 2.2-1.6,이 코드는 2.3에서 잘 작동
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;
}
나는 마법의 블록이 잘못된 것에 대해 메시지와 함께 IOException를 얻을. openStream을 사용하여 MIME 형식이나이 데이터의 내용을 엉망으로 만든 무언가가 변경되었다고 가정합니다. openStream이 HTTP 연결을 처리하는 가장 신뢰할 수있는 방법이 아닌 다른 곳을 읽었으므로 연결 코드를 다시 작성하는 것이 좋습니다.
HttpClient를 사용하고 HttpGet 요청을 사용하도록 코드를 변경하면 올바르게 작동합니다. 뭔가 URL.openStream() 함수에서 깨진 있어야합니다. 오 잘, 잘하면이 시간 누군가 다른 사람을 구하는 데 도움이됩니다. –