2016-05-05 7 views
1

私は非常に多くのサンプルとコードを調べましたが、まだボレーのJsonArrayRequestでAuth Failedという応答が表示されています。誰が私がここで何をしているのか分かりません。私は一日のためにこれを立ち往生していますアンドロイドスタジオボレーのURL認証トークン用にHTTPヘッダーにAPIキーを追加するにはどうすればよいですか?

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); 

以下は私のコードです。

+0

あなたのログを投稿し、ヘッダーに正しいapiが指定されているか確認してください。 – JUL2791

+0

BasicNetwork.performRequest:URLの予期しない応答コード403。 onErrorResponse:JSONArray VolleyError – Vicky

+0

あなたは無効な** api_key **を親切にチェックし、その**禁止されたエラー**をGoogleに送ることができます。 POSTMANを使用してAPI呼び出し(つまり、サーバーの要求と応答)を検証します。 Chromeのプラグイン。乾杯 – JUL2791

答えて

0

ヘッダーに追加したいので、getParams()の代わりにgetHeaders()を使用してください。

希望すると助かります!

関連する問題