Domanda

Sto cercando di usare l'SDK Android di Deezer per fare ricerche. Tuttavia, i risultati della ricerca sono sempre vuoti. Ecco come sto:

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);

Risultato API:

{"data":[],"total":0}
È stato utile?

Soluzione

L'oggetto DeezerQuest esegue operazioni severate sul percorso API che viene fornita (nel tuo caso "/Search/Artist? Q = Radiohead"). Tra queste operazioni, i parametri delle query vengono ripristinati per essere conformi all'API Deezer JSON.

Per aggiungere i propri parametri in tale richiesta, viene fornito un meccanismo in diversi costruttori dell'oggetto DeezerQuest. Citando dalla documentazione SDK:

Public DeezerQuest (String DeezerservicePath, Bundle Params)

Costruttore Deezerrequest usando il metodo GET.

Parametri:

  • DeezerservicePath - Path to Service. Corrisponde all'URL della richiesta meno la parte del nome dell'host del protocollo e del server.
  • Parame: parametri passati alla richiesta di servizio. I parametri verranno aggiunti automaticamente tramite GET o POST.

Quindi, nel tuo caso, dovresti utilizzare il seguente metodo per creare la tua richiesta:

    // Search request
    Bundle bundle = new Bundle();
    bundle.putString("q", "radiohead");
    DeezerRequest request = new DeezerRequest("/search/artist", bundle);
    mDeezerConnect.requestAsync(request, this);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top