【问题标题】:Calling REST API with JSON response from setlist.fm使用来自 setlist.fm 的 JSON 响应调用 REST API
【发布时间】:2018-01-20 01:29:25
【问题描述】:

有人从 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;
        }

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

欢迎提出任何建议。

谢谢!

【问题讨论】:

    标签: android api


    【解决方案1】:

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

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

    并将其替换为:

    return EntityUtils.toString(getResponse.getEntity());
    

    【讨论】:

      猜你喜欢
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2016-01-17
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多