2016-08-09 9 views
1

現在、私がgetリクエストを作成しようとすると、まず認証を受ける必要があります。だからWeb上で私はgetHeaders()を使用し、自分の資格情報を送信するためにハッシュマップを使用する必要があるようだ。しかし、私のヘッダーには私が送る必要がある少し余分な情報があります。Volley認証ヘッダー

私のヘッダーは次のようになります。 enter image description here

は、私は問題は何ができるかわかりません。私はすべての正しい情報を送っているように感じる。

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, urlJsonObj, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       try { 
        // JSONObject jsonArray = response.getJSONObject("response_message"); 

        String message = response.getString("response_message"); 

        Toast.makeText(getActivity(), 
            message, 
            Toast.LENGTH_LONG).show(); 


       } catch (JSONException e1) { 
        e1.printStackTrace(); 
       } 
      } 

      } 


     , 

       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Log.e("Volley", "Error"); 
        } 
       } 


     ) { 
      @Override 
      public Map getHeaders() throws AuthFailureError { 
       Map headers = new HashMap<>(); 
       String credentials = "ezhu:[email protected]"; 
       String auth = "Basic " 
         + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); 
       headers.put("Content-Type", "application/json"); 
       headers.put("Authorization", auth); 
       headers.put("user-tz", "-330"); 


       return headers; 
      } 
     }; 



     requestQue.add(jsonObjectRequest); 

    } 

私のログに401エラーが表示され、URLが表示されます。私はURLをクリックすると、私のブラウザのタブが開き、次を示しています。

{「ERROR_MESSAGE」:「リクエストメソッドのパラメータがありません」、「ERROR_CODE」:「1」、「エラー」: "行方不明リクエストヘッダを文字列型のメソッドパラメータの 'user-tz'}}

+0

かなり便利だったものtz:-330 ")をブラウザのAPI URLに移動しようとするとします。だから正しく「デバッグ」していないかもしれません。それにもかかわらず、あなたのAndroidコードは、要求ヘッダを設定する限り正確に見えます。以前は、Map headers = new ArrayMap <>()を使っていましたが、違いがあるとは思いません。私はあなたが使用しようとしているサービスのAPIドキュメントをダブルチェックしてみましょう。 – Brian

+0

@この問題の解決策をすべて追加しますか? –

答えて

1

コードが正しいようです。あなたはあなたのログに何かを見つけようとすることができます。同様の問題を扱っていたとき、私は見つけました

W/System:値がnullだったので、ヘッダーsessionIDを無視しています。私のログに

は、「USER-として、あなたが正しくない可能性があり、ブラウザでREST URLをテストしている方法は、(ブラウザが独自のヘッダのいずれかを送信しません

関連する問題