0

我有一个项目需要通过互联网获取实时比分结果。经过研究,我发现我可以从http://iphone.livescore.com/iphone.dll?gmt=0.0获得 livescore 。然后,我编写了一个简单的应用程序,从上面的 url 得到响应。但问题是我编写的代码使结果工作不稳定。有时它返回的 url 正文与浏览器显示不正确,在我的应用程序中它显示带有人类无法阅读的字符的未知字符串。

这是我的代码,有人可以给我建议吗?

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();
}
4

1 回答 1

3

确保服务器以UTF-8格式发送数据。

除此之外,我会用这个单行替换读取的代码:

EntityUtils.toString(response.getEntity(),"UTF-8");
于 2013-03-05T01:51:15.897 回答