Pas de réponse en retour de JSON

  • Réponses :1
Broshet
  • Posts de Forum 2

30 août 2017 à 10:10:47 via site

Salut,

Je viens de créer la classe ci dessous et chaque fois que j'appelle la fonction getAlldataTest, je ne rentre jamais dans la fonction onResponse. Avez vous une piste ?

package ovh.broshet.pdf.MyApp.Functional;

import android.util.Log;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import ovh.broshet.pdf.MyApp.Core.APP_Config;
import ovh.broshet.pdf.MyApp.Core.APP_Controller;
import ovh.broshet.pdf.MyApp.Object.OBJ_dataTest;

import static java.lang.Boolean.valueOf;

public class FUNC_dataTest {

private String CodeError;
private Integer NumError;
private String Message;
private List<OBJ_dataTest> data;


public FUNC_dataTest(){
    this.CodeError = "";
    this.NumError = 0;
    this.Message = "";
    this.data = null;
}


private FUNC_dataTest(String CodeError, Integer NumError, String Message, List<OBJ_dataTest> data) {
    this.CodeError = CodeError;
    this.NumError = NumError;
    this.Message = Message;
    this.data = data;
}


public List<OBJ_dataTest> getData() {
    return data;
}

public void setData(List<OBJ_dataTest> data) {
    this.data = data;
}


private String r_CodeError;
private Integer r_NumError;
private String r_Message;
private List<OBJ_dataTest> r_Data;


public FUNC_dataTest getAlldataTest() {


    String tag_string_req = "req_getalldataTest";


    Log.d("FUNC_dataTest","New String Request");
    StringRequest strReq = new StringRequest(Request.Method.POST,
            APP_Config.URL_dataTest, new Response.Listener<String>() {




        @Override
        public void onResponse(String response) {
            Log.d("FUNC_dataTest","Entrée dans le traitement de la réponse");
            try {
                Log.d("FUNC_dataTest","JSON OK");
                JSONObject jObj = new JSONObject(response);
                Boolean isError = valueOf(jObj.getString("error"));
                String explain = jObj.getString("explain");
                String Code_Ret = jObj.getString("code");
                if (isError) {
                    r_CodeError = "E";
                    r_NumError = 1;
                    r_Message = "Erreur retournée par le Web Service : "+Code_Ret+" "+explain;
                    r_Data = null;
                } else {
                    switch (Code_Ret) {
                        case "dataTest_GETLIST_01_OK":
                            JSONArray data = jObj.getJSONArray("data");
                            List<OBJ_dataTest> dataTestArray = new ArrayList<>(data.length());
                            for (int i = 0; i < data.length(); i++) {
                                JSONObject c = data.getJSONObject(i);
                                dataTestArray.add(new OBJ_dataTest(
                                        c.getInt("id"),
                                        c.getString("nom"),
                                        c.getString("prenom"),
                                        c.getString("mail"),
                                        "",//*c.getString("villageservice"),
                                        "" //* c.getString("groupe")
                                ));
                            }
                            r_CodeError = "I";
                            r_NumError = 0;
                            r_Message = "Retour Web Service : "+Code_Ret+" "+explain;
                            r_Data = dataTestArray;
                            break;
                        case "dataTest_GETLIST_02_EMPTY":
                            r_CodeError = "W";
                            r_NumError = 2;
                            r_Message = "Retour Web Service : "+Code_Ret+" "+explain;
                            r_Data = null;
                            break;
                        case "dataTest_GETLIST_99_KO":
                            r_CodeError = "E";
                            r_NumError = 3;
                            r_Message = "Retour Web Service : "+Code_Ret+" "+explain;
                            r_Data = null;
                            break;
                        default:
                            r_CodeError = "E";
                            r_NumError = 4;
                            r_Message = "Retour Inconnu Web Service : "+Code_Ret+" "+explain;
                            r_Data = null;
                            break;
                    }
                }
            } catch (JSONException e) {
                // JSON error
                Log.d("FUNC_dataTest","Catch JSON Error");
                e.printStackTrace();
                r_CodeError = "E";
                r_NumError = 0;
                r_Message = "Erreur JSON: "+e.getMessage();
                r_Data = null;
            }


        }
    }, new Response.ErrorListener() {


        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("FUNC_dataTest","Error Listener");
            r_CodeError = "E";
            r_NumError = 6;
            r_Message = "Erreur Retour JSON: "+error.getMessage();
            r_Data = null;
        }
    }) {


        @Override
        protected Map<String, String> getParams() {
            // Posting parameters to login url
            Map<String, String> params = new HashMap<>();
            params.put("func", "getAlldataTest");
            return params;
        }


    };
    // Adding request to request queue
    Log.d("FUNC_dataTest","GetInstance Controller");
    APP_Controller.getInstance().addToRequestQueue(strReq, tag_string_req);
    Log.d("FUNC_dataTest","After GetInstance Controller");
    return new FUNC_dataTest(r_CodeError,r_NumError,r_Message,r_Data);
}

}

Luna

Répondre
Luna
  • Admin
  • Posts de Forum 70 425

30 août 2017 à 10:23:43 via site

Salut

J'ai récemment demandé de l'aide à un dévelopmeur et il m'a répondu que ce n'était pas utile de répondre parce que 99 % des réponses sont dans Google.
En gros il faudrait que tu fasses un effort pour mieux chercher.

À ton avis qu'est-ce que je peux leur répondre pour les convaincre que leurs arrogances n'ont d'égales que leurs stupidités ?

Je suis à court d'idée.

— Modifié le 30 août 2017 à 10:24:22

Keep Calm and Love Android.

Répondre