2017-11-17 1 views
0

Also ich API-Anfrage in spoonucalur verwendet, die ein Rezept API ist, die Rezept zur Verfügung stellen. Ich habe versucht, die Anfrage im Postboten zu bekommen und es funktioniert gut. Allerdings funktioniert es in meiner App so instabil. Ich benutze Android Studio und benutze Volley für die Bibliothek, um die Anfrage zu bearbeiten.API Anfrage funktioniert für Postbote, aber bekam Timeout für Volley

JsonArrayRequest getRequest = new JsonArrayRequest(Request.Method.GET, url, null, 
       new Response.Listener<JSONArray>() { 
        @Override 
        public void onResponse(JSONArray response) { 
         try { 
          callbackHelper.onSuccess(response.getJSONObject(0)); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }, 
       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Log.d("error", error.toString()); 
        } 
       }) { 
      @Override 
      public Map<String, String> getHeaders() throws AuthFailureError { 
       Map<String, String> params = new HashMap<>(); 
       params.put("X-Mashape-Key", currentAPI); 
       params.put("Accept", "application/json"); 
       return params; 
      } 
     }; 
     Log.d("request", "starting"); 
     queue.add(getRequest); 

Manchmal gibt es mir die richtigen Informationen zurück, aber manchmal wird es nur TimeOutError sagen. Es kommt ziemlich schnell im Postboten für meine Anfrage zurück, deshalb habe ich keine Ahnung, warum es vorerst nicht funktionieren würde. Hier

ist die api Link: https://market.mashape.com/spoonacular/recipe-food-nutrition Hier ist die GET-Anfrage, die ich verwende: https://spoonacular-recipe-food-nutrition-v1.p.mashape.com/recipes/findByNutrients?maxCalories=4000&number=1&offset=0&random=true

Antwort

0

Ändern Sie den RetryPolicy auf Request auf längere Auszeiten zu ermöglichen.

Ex.

final int TIMEOUT_MS = 10000; 
getRequest.setRetryPolicy(new DefaultRetryPolicy(TIMEOUT_MS, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy. DEFAULT_BACKOFF_MULT); 
... 
Verwandte Themen