아래의 전체 코드에서 BufferedReader.readLine()을 실행하면 IOException이 발생합니다 (while ((line = br.readLine()) != null) {
). Exception.getMessage()
은 을 반환합니다. BufferedInputStream은으로 닫힙니다.IOException BufferedInputStream이 HTC에서 닫혔습니다.
소니 에릭슨 XPERIA를 사용하면 HTC 장치에서만 발생합니다.
내 전체 코드 :
public static String downloadString(String url) throws MalformedURLException, IOException {
InputStream is = downloadStream(url);
//Convert stream into String
String line;
BufferedReader br = new BufferedReader(new InputStreamReader(is), 4096);
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
return sb.toString();
}
public static InputStream downloadStream(String url) throws MalformedURLException, IOException {
return connection(url).getInputStream();
}
private static HttpURLConnection connection(String s_url) throws MalformedURLException, IOException {
URL url = new URL(s_url);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.connect();
return urlConnection;
}
어떻게 모든 장치에서 작동하는 더 나은 downloadString 방법을 할?
미리 감사드립니다. 정말 귀하의 답변을 주셔서 감사합니다
'GET'요청 메소드를 사용하려면 ICS로 시작하므로 urlConnection.setDoOutput (true)을 사용하지 말고 setDoOutput (true)을 사용하면 API가 요청 메소드를 'POST'로 변경합니다.). –