我正在尝试使用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}
最佳答案
DeezerRequest对象在给定的API路径上执行几次操作(在您的情况下为“ / search / artist?q = radiohead”)。在这些操作中,查询参数被重置为与Deezer JSON API兼容。
为了在这样的请求中添加您自己的参数,DeezerRequest对象的不同构造函数中提供了一种机制。引用SDK文档:
公共DeezerRequest(String deezerServicePath,Bundle params)
使用GET方法的DeezerRequest构造函数。
参数:
deezerServicePath-服务路径。匹配的网址
请求减去协议和服务器主机名部分。
参数-
传递给服务请求的参数。参数将被添加
通过获取或发布自动进行。
因此,在您的情况下,应使用以下方法创建请求:
// Search request
Bundle bundle = new Bundle();
bundle.putString("q", "radiohead");
DeezerRequest request = new DeezerRequest("/search/artist", bundle);
mDeezerConnect.requestAsync(request, this);