2013-03-05 1 views
0

나는 프로젝트가 인터넷을 통해 결과를 얻도록해야한다. 연구 후에 나는 http://iphone.livescore.com/iphone.dll?gmt=0.0에서 livescore를 얻을 수 있다는 것을 발견했습니다. 그런 다음 위의 URL에서 응답하는 간단한 응용 프로그램을 작성합니다. 하지만 문제는 결과 작업을 불안정하게 만드는 코드 작성입니다. 언젠가 브라우저의 표시처럼 URL의 본문을 되돌려 주지만, 내 응용 프로그램에서는 사람이 읽을 수없는 문자로 문자를 알 수 없습니다.HttpResponse에서 본체 반환을 java에서 불안정하다고 읽습니까?

여기 내 코드는 내게 조언을 해 줄 수 있습니까?

private String getURLContent(String url) { 
    StringBuffer stringBuffer = new StringBuffer(); 

    HttpGet httpGet = new HttpGet(url); 
    try { 
     HttpResponse response = httpClient.execute(httpGet); 
     if (response.getStatusLine().getStatusCode() == 200) { 
      InputStream inputStream = response.getEntity().getContent(); 

      InputStreamReader reader = new InputStreamReader(inputStream, 
        "UTF-8"); 
      int ch; 
      while ((ch = reader.read()) > -1) { 
       stringBuffer.append((char) ch); 
      } 
      reader.close(); 
     } 
    } catch (ClientProtocolException e) { 
     log.fatal(e); 
    } catch (IOException e) { 
     log.fatal(e); 
    } 
    return stringBuffer.toString(); 
} 
+1

당신은 내용이 UTF-8로 인코딩되어 있는지 있습니까? –

+0

디코드 할 필요가 없습니다. 'String result = URLDecoder.decode (url, "UTF-8"); – Bizmarck

답변

3

서버가 UTF-8 형식으로 데이터를 전송하는지 확인하십시오. 이 옆에

나는이 한 줄에 읽기 코드를 대체 할 것이다 :

EntityUtils.toString(response.getEntity(),"UTF-8");