0

有人从 Android 调用过 setlist.fm API 吗?我正在尝试执行以下代码:

        DefaultHttpClient client = new DefaultHttpClient();
        HttpGet getRequest;

        try
        {
            getRequest = new HttpGet(url);
            HttpResponse getResponse = client.execute(getRequest);
            HttpEntity getResponseEntity = getResponse.getEntity();
            return getResponseEntity.getContent();
        }
        catch (Exception e)
        {
            Log.w(getClass().getSimpleName(), "Error for URL " + url, e);
            return null;
        }

但我似乎遇到了两个问题。执行似乎总是以 200 的状态行正确返回,但是当我尝试获取实体时,即使响应对象显示返回了 basichttpentity 对象,长度也是 -1。此外,当我尝试调用 getContent 时,由于某种原因,它会因一般异常而爆炸。我尝试使用的示例 API 调用是http://api.setlist.fm/rest/0.1/search/setlists.json?artistName=Prince

任何建议都将受到欢迎。

谢谢!

4

1 回答 1

0

我弄清楚了这个问题。似乎从 API 返回的响应是流式传输的并且以块的形式出现,我试图在实体完成之前抓取它。我删除了这段代码:

HttpEntity getResponseEntity = getResponse.getEntity();
return getResponseEntity.getContent();

并将其替换为:

return EntityUtils.toString(getResponse.getEntity());
于 2012-07-12T12:33:22.080 回答