2016-05-05 6 views
1

Ich habe so viele Beispiele und Codes untersucht, aber immer noch bekomme ich die Antwort Auth Failed in Volley JsonArrayRequest. Kann mir jemand sagen, was ich hier falsch mache?Wie API Key in HTTP Header für URL-Authentifizierungstoken in Android Studio Volley hinzuzufügen?

Unten ist mein Code:

RequestQueue queue = Volley.newRequestQueue(act); 
    if (isOnline()) { 
     pDialog.show(); 
     JsonArrayRequest jsonObjReq = new JsonArrayRequest(Request.Method.POST, 
       url, (String) null, 
       new Response.Listener<JSONArray>() { 

        @Override 
        public void onResponse(JSONArray response) { 
         Log.d("JSONArray Response", response.toString()); 

         try { 
          listener.onResponse(response); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
         pDialog.hide(); 
        } 
       }, new Response.ErrorListener() { 

      @Override 
      public void onErrorResponse(VolleyError error) { 
       VolleyLog.d("JSONArray VolleyError", "Error: " + error.getMessage()); 
       pDialog.hide(); 

       if (error instanceof TimeoutError) { 
        listener.onError(timeout, timeoutTitle); 
       Toast.makeText(act, 
         "Bad Network, Try again", 
         Toast.LENGTH_LONG).show(); 
       } else if (error instanceof NoConnectionError) { 
        listener.onError(poorNetwork, poorNetworkTitle); 
       Toast.makeText(act, 
         "Bad Network, Try again", 
         Toast.LENGTH_LONG).show(); 
       } else if (error instanceof AuthFailureError) { 
        listener.onError(authorizationFailed, authorizationFailedTitle); 
       Toast.makeText(act, 
         "Auth failed", 
         Toast.LENGTH_LONG).show(); 
       } else if (error instanceof ServerError) { 
        listener.onError(serverNotResponding, serverNotRespondingTitle); 
       /* Toast.makeText(act, 
         "Server Not Responding", 
         Toast.LENGTH_LONG).show();*/ 
       } else if (error instanceof NetworkError) { 
        listener.onError(networkErrorMessage, networkErrorTitle); 
       Toast.makeText(act, 
         "Network Error", 
         Toast.LENGTH_LONG).show(); 
       } else if (error instanceof ParseError) { 
        listener.onError(parseError, parseErrorTitle); 
       Toast.makeText(act, 
         "try again"+error.getMessage(), 
         Toast.LENGTH_LONG).show(); 
       } 


      } 

     }) 
     { 
      @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<String, String>(); 
       //add params <key,value> 
       params,put("api_key", "TOKEN"); 
       params.put("username", "vicky"); 
       params.put("password", "test123"); 
       return params; 
      } 

     } 
       ;queue.add(jsonObjReq); 

ich dies für einen Tag stecke.

+0

Veröffentlichen Sie Ihr Protokoll und überprüfen Sie gegebenes Recht API in Kopfzeilen – JUL2791

+0

BasicNetwork.performRequest: Unerwarteter Antwortcode 403 für Url. onErrorResponse: JSONArray VolleyError – Vicky

+0

Sie können ungültige ** api_key ** freundlich überprüfen und sein ** verbotener Fehler ** weiter google es. Verwenden Sie POSTMAN, um den API-Aufruf zu validieren (d. H. Serveranforderung und -antwort). Sein Plugin in Chrome. Prost – JUL2791

Antwort

0

Da Sie zur Kopfzeile hinzufügen möchten, verwenden Sie getHeaders() anstelle von getParams().

Hoffe es hilft!