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ドキュメントからの引用:

public DeezerRequest(String deezerServicePath,Bundle params)

GET メソッドを使用した DeezerRequest コンストラクター。

パラメーター:

  • 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 に答える