2016-08-09 3 views
1

현재 요청을 받으면 먼저 인증해야합니다. 그래서 웹에서 보면 getHeaders()를 사용하고 hashmap을 사용하여 내 자격 증명을 제출해야합니다. 그러나 나의 우두머리는 내가 필요로하는 조금의 여분의 정보를 가지고있다.발리 인증 헤더

내 헤더는 다음과 같습니다 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'String 유형의 메소드 매개 변수 "}

+0

꽤 도움이 무엇 이었습니까 tz : -330 ") 브라우저에서 API URL로 이동하려고하면됩니다. 따라서 올바르게 디버깅하지 못할 수도 있습니다. 그럼에도 불구하고 요청 헤더 설정과 관련하여 Android 코드가 올바르게 표시됩니다. 과거에는 Map headers = new ArrayMap <>()을 사용했습니다. 차이가 있다고 생각하지는 않습니다. 내가 사용하려고하는 서비스에 대한 API 문서와 함께 두 번 확인해 보겠습니다. – Brian

+0

@이 문제에 대한 해결책을 추가 하시겠습니까? –

답변

1

코드가 올바른 것으로 보입니다. 로그에서 무언가를 찾으려고 할 수 있습니다. 비슷한 문제를 다루었을 때

W/System : 값이 null이므로 헤더 세션 ID가 무시됩니다. 내 로그에

는, 예 : "사용자 - 당신이 정확하지 않을 수 있습니다 브라우저에서 REST URL을 테스트하는 방법이 (브라우저 고유의 헤더 중 하나를 전송하지 않습니다