2017-10-09 3 views
0

Je suis nouveau sur Android. Je suis en train de trouver comment faire des appels réseau. J'essaie d'envoyer des en-têtes avec les données JSON. J'ai essayé de déboguer le code mais ça ne va pas à onResponse(). Quelqu'un peut-il me dire ce que je fais mal.Volley Demande ne donnant aucune réponse

Voici mon code.

String url = "https://api....."; 
    RequestQueue requestQueue = Volley.newRequestQueue(this); 
    JSONObject jsonObject = new JSONObject(); 
    try { 
     jsonObject.put("image", "https://i.imgur.com/5KdM.jpg"); 
     jsonObject.put("subject_id", "Elixabeth"); 
     jsonObject.put("gallery_name", "MyGallery"); 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, jsonObject, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       if (response != null){ 

       } 
       // do something... 
      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       // do something... 
      } 
     }) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       final Map<String, String> headers = new HashMap<>(); 
       headers.put("Content-Type", "application/json"); 
       headers.put("app_id", ""); 
       headers.put("app_key", ""); 
       headers.put("Content-Length", "124"); 

       return headers; 
      } 
     }; 
     requestQueue.add(jsonObjectRequest); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

J'ai essayé la même chose dans Postman avec les mêmes données et je reçois une réponse.

+0

êtes-vous essayer de connecter la méthode onErrorResponse? avez-vous un journal stackTrace? – tebitoq

+0

Est-ce que vous arrivez à onErrorResponse()? –

+0

Je l'ai résolu..Mais c'est un peu bizarre. Content-Length était le problème que l'API attendait. Mais j'en envoyais 124. Mais avec 124, il travaillait comme facteur. Quelqu'un peut-il expliquer la raison? – Stackover67

Répondre

0

Mettre le journal à l'intérieur onResponse (méthode JSONObject) méthode Log.d ("Response", response.toString()); et onErrorResponse (erreur VolleyError) méthode Log.e ("Error", error.getMessage());. Ensuite, vérifiez le logcat, vous pouvez trouver ce qui ne va pas ...

+0

l'a résolu..Mais c'est un peu bizarre. Content-Length était le problème. L'api attendait 96..Mais j'en envoyais 124. Mais avec 124 ça fonctionnait en facteur. Quelqu'un peut-il expliquer la raison? – Stackover67

+0

Peut être en train de changer JsonObjectRequest en StringRequest va résoudre votre problème .. –