2013-03-05 61 views
0

我有一個項目需要通過互聯網得到livescores結果。經過研究,我發現我可以從http://iphone.livescore.com/iphone.dll?gmt=0.0得到比分。 然後,我寫了一個簡單的應用程序,從上面的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編碼? – 2013-03-05 01:49:08

+0

你不需要解碼嗎 'String result = URLDecoder.decode(url,「UTF-8」);'' – Bizmarck 2013-03-05 01:53:04

回答

3

確保服務器以UTF-8格式發送數據。

除了這個我就這一個班輪更換讀碼:

EntityUtils.toString(response.getEntity(),"UTF-8"); 
相關問題