2

我正在尝试使用 Deezer 的 Android SDK 进行搜索。但是,搜索结果始终为空。这是我的做法:

private final static String[] PERMISSIONS = new String[]{};
private DeezerConnect deezerConnect = new DeezerConnectImpl(DEEZER_APP_ID);
RequestListener handler = new CustomDeezerRequestHandler();

// User login
deezerConnect.authorize(MainActivity.this, PERMISSIONS, new MyDialogHandler());

// When the login is completed:
// Search request
DeezerRequest request = new DeezerRequest("/search/artist?q=radiohead");
deezerConnect.requestAsync(request, handler);

API 结果:

{"data":[],"total":0}
4

1 回答 1

1

DeezerRequest 对象在给定的 API 路径上执行多个操作(在您的情况下为“/search/artist?q=radiohead”)。在这些操作中,查询参数被重置以符合 Deezer JSON API。

要在此类请求中添加您自己的参数,在 DeezerRequest 对象的不同构造函数中提供了一种机制。引用 SDK 文档:

公共 DeezerRequest(字符串 deezerServicePath,捆绑参数)

DeezerRequest 构造函数使用 GET 方法。

参数:

  • deezerServicePath - 服务路径。匹配请求的 url 减去协议和服务器主机名部分。
  • params - 传递给服务请求的参数。参数将通过 get 或 post 自动添加。

因此,在您的情况下,您应该使用以下方法来创建您的请求:

    // Search request
    Bundle bundle = new Bundle();
    bundle.putString("q", "radiohead");
    DeezerRequest request = new DeezerRequest("/search/artist", bundle);
    mDeezerConnect.requestAsync(request, this);
于 2013-11-07T17:00:35.490 回答