【问题标题】:No response to the Deezer API request "editorial/0/charts"对 Deezer API 请求“edittorial/0/charts”没有响应
【发布时间】:2014-03-11 02:11:23
【问题描述】:

我使用 Deezer API v0.10.10 请求editorial/0/charts,但它不起作用。没有响应和异常。

DeezerRequest request = new DeezerRequest("editorial/0/charts");
AsyncDeezerTask task = new AsyncDeezerTask(mDeezerConnect,
                    new JsonRequestListener() {
                        @SuppressWarnings("unchecked")
                        @Override
                        public void onResult(final Object result, final Object requestId) {
                            PaginatedList<Track> resp = (PaginatedList<Track>) result;
                    });
task.execute(request);

我使用 Deezer API v0.10.10 和 Android 4.0 (API 14) 或更高版本。

【问题讨论】:

    标签: android sdk deezer


    【解决方案1】:

    我从您的示例代码中假设您使用的是适用于 Android 0.10.10 的 Deezer SDK。

    JsonRequestListener 能够解析许多常见的请求,但还没有解析所有可用的 API 请求,并且您正在使用的请求还没有被正确处理。不幸的是,此版本的 SDK 存在一个小错误,导致您遇到的回调缺失。

    这是一个示例侦听器,您可以使用它来解析 API 对此特定请求的响应:

    RequestListener listener = new RequestListener() {
        @SuppressWarnings("unchecked")
        @Override
        public void onComplete(String response, Object requestId) {
    
            List<Track> tracks;
            List<Artist> artists;
            List<Album> albums;
            try {
                JSONObject json = new JSONObject(response);
    
                tracks = (PaginatedList<Track>) JsonUtils
                        .deserializeObject(json.optJSONObject("tracks"));
                artists = (PaginatedList<Artist>) JsonUtils
                        .deserializeObject(json.optJSONObject("artists"));
                albums = (PaginatedList<Album>) JsonUtils
                        .deserializeObject(json.optJSONObject("albums"));
            } catch (Exception e) {
                tracks = Collections.emptyList();
                artists = Collections.emptyList();
                albums = Collections.emptyList();
                e.printStackTrace();
            }
    
            Log.i("Json",
                    "Parsed " + tracks.size() + " tracks, " + albums.size()
                            + " albums and " + artists.size() + " artists");
        }
    
        @Override
        public void onOAuthException(OAuthException e, Object requestId) {
            e.printStackTrace();
        }
    
        @Override
        public void onMalformedURLException(MalformedURLException e, Object requestId) {
            e.printStackTrace();
        }
    
        @Override
        public void onIOException(IOException e, Object requestId) {
            e.printStackTrace();
        }
    
        @Override
        public void onDeezerError(DeezerError e, Object requestId) {
            e.printStackTrace();
        }
    };
    
    DeezerRequest request = new DeezerRequest("editorial/0/charts");
    AsyncDeezerTask task = new AsyncDeezerTask(mConnect, mListener);
    task.execute(request);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-09
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 2016-03-30
      相关资源
      最近更新 更多