Frage

Ich versuche, Deezer Android SDK von Deezer zu verwenden, um Suchanfragen durchzuführen. Die Suchergebnisse sind jedoch immer leer. So geht es mir:

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 -Ergebnis:

{"data":[],"total":0}
War es hilfreich?

Lösung

Das DeezerRequest -Objekt führt Severall -Operationen auf dem API -Pfad durch (in Ihrem Fall "/Search/Artist? Q = Radiohead"). Unter diesen Operationen werden Abfrageparameter zurückgesetzt, um der Deezer JSON -API zu entsprechen.

Um Ihre eigenen Parameter in einer solchen Anfrage hinzuzufügen, wird in verschiedenen Konstruktoren des DeezerRequest -Objekts ein Mechanismus bereitgestellt. Zitat aus der SDK -Dokumentation:

öffentliche DeezerRequest (String DeezerServicePath, Bundle -Params)

DeezerRequest -Konstruktor mit der GET -Methode.

Parameter:

  • DeezerServicePath - Weg zum Dienst. Entspricht der URL der Anfrage abzüglich des Protokolls und dem Server -Hostnamenteil.
  • Parameter - Parameter übergeben an die Serviceanforderung. Parameter werden automatisch über GET oder Post hinzugefügt.

In Ihrem Fall sollten Sie also die folgende Methode verwenden, um Ihre Anfrage zu erstellen:

    // Search request
    Bundle bundle = new Bundle();
    bundle.putString("q", "radiohead");
    DeezerRequest request = new DeezerRequest("/search/artist", bundle);
    mDeezerConnect.requestAsync(request, this);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top