Double requête ?
P53ud0
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je travaille sur une application pour une utilisation personnel/amis.
Je voudrais savoir si il était possible de faire requête dans une requête (API)
Je m'explique, j'ai un " public void checkGame " et avec les résultât JSON que je récupère dans une boucle for, je voulais savoir si je pouvais directement dans la boucle relancer une requête qui utilise ses données dans un "public void checkIdChampion" ?
Voici le code:
(ps: Je ne sais pas comment faire pour mettre en évidence le code... si quelque"un peu m'expliquer)
VOICI LE DEUXIEME CODE QUI EST SUR LA MEME CLASS JAVA ( ApiRequest.java )
Je voudrais savoir si il était possible de faire requête dans une requête (API)
Je m'explique, j'ai un " public void checkGame " et avec les résultât JSON que je récupère dans une boucle for, je voulais savoir si je pouvais directement dans la boucle relancer une requête qui utilise ses données dans un "public void checkIdChampion" ?
Voici le code:
(ps: Je ne sais pas comment faire pour mettre en évidence le code... si quelque"un peu m'expliquer)
public void checkGame(final String plrID, final String region, final CheckGameCallBack clllBack) { String regionv2; switch (region) { case "NA": regionv2 = "NA1"; break; case "EUW": regionv2 = "EUW1"; break; case "BR": regionv2 = "BR1"; break; case "EUNE": regionv2 = "EUN1"; break; default: regionv2 = "ERROR"; } String url = "https://"+ region +".api.pvp.net/observer-mode/rest/consumer/getSpectatorGameInfo/"+ regionv2 +"/"+ plrID +"?api_key=" + API_KEY; final JsonObjectRequest requete = new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { Log.d("APP", response.toString()); try { List<Gamer> listGamers = new ArrayList<>(); String gameMode = response.getString("gameQueueConfigId"); JSONArray nameList = response.getJSONArray("participants"); for (int i = 0; i < nameList.length(); i++) { JSONObject jsonobject = nameList.getJSONObject(i); final Gamer gamer = new Gamer(jsonobject.getString("summonerName"), jsonobject.getLong("teamId"), jsonobject.getLong("championId")); listGamers.add(gamer); (C'EST ICI QUE JE VOUDRAIS FAIRE APPEL A MON CHECKIDCHAMPION PUIS CE QU IL Y A DEJA UNE BOUCLE FOR QUI RECUPERE LES DONNES UN PAR UN) } clllBack.onSucces(gameMode.toString(), listGamers); } catch (JSONException e) { Log.d("APP", "EXCEPTION = " + e); e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if(error instanceof NetworkError) { clllBack.onError("Impossible to connect"); } else if(error instanceof ServerError){ clllBack.onError("Game not found"); } Log.d("APP", "ERROR = " + error); } }); queue.add(requete); }
VOICI LE DEUXIEME CODE QUI EST SUR LA MEME CLASS JAVA ( ApiRequest.java )
public void checkIdChampion(final String champId, final String region, final CheckIdChampionCallBack callBack) { String url = "https://global.api.pvp.net/api/lol/static-data/" + region + "/v1.2/champion/" + champId + "?champData=image&api_key=" + API_KEY; JsonObjectRequest requete = new JsonObjectRequest(Request.Method.GET, url , new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { String gameMode = response.getString("image"); callBack.onSucces("SALUT"); } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { if(error instanceof NetworkError) { callBack.onError("Impossible to connect"); } else if(error instanceof ServerError){ callBack.onError("Game not found"); } Log.d("APP", "ERROR = " + error); } }); queue.add(requete); }
EDIT : Ajout des balises de code
A voir également:
- Double requête ?
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
1 réponse
Bonjour,
1 - Pour les balises de code : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Les données sont issues de la même BDD ?
Si oui.. il y a surement moyen de ne pas avoir à boucler sur le résultat de ta première requête .... mais directement faire une SEULE requête (avec JOINTURE) qui retourne TOUTES les infos que tu veux ( en une seule fois...)
Pour t'aider.. il nous faudrait la structure de tes tables.
1 - Pour les balises de code : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Les données sont issues de la même BDD ?
Si oui.. il y a surement moyen de ne pas avoir à boucler sur le résultat de ta première requête .... mais directement faire une SEULE requête (avec JOINTURE) qui retourne TOUTES les infos que tu veux ( en une seule fois...)
Pour t'aider.. il nous faudrait la structure de tes tables.