0

JsonObjectRequest를 사용하여 기본 인증으로 사용자 이름과 비밀번호를 보내려고합니다. getHeaders() 메서드를 재정의하려고 시도했지만 작동하지 않았습니다. 여기에 내 코드입니다 : 내가 Base64.NO_WRAP 사용Basic Auth 헤더가있는 Volley JsonObjectRequest가 작동하지 않습니다.

public class NewPostRequest extends JsonObjectRequest { 

    public NewPostRequest(JSONObject requestBody) { 
     super(Method.POST, APIConstants.CREATE_POST_URL, requestBody, new Response.Listener<JSONObject>() { 
      @Override 
      public void onResponse(JSONObject response) { 

       try { 

        long postId = response.getLong("id"); 

        NewPostResponse newPostResponse = new NewPostResponse(postId); 

        EventBus.getDefault().post(newPostResponse); 

       } catch (JSONException e) { 

        e.printStackTrace(); 

        EventBus.getDefault().post(new NewPostResponse(-1)); 

       } 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 

       EventBus.getDefault().post(new NewPostResponse(-1)); 

      } 
     }); 
    } 

    @Override 
    public Map<String, String> getHeaders() throws AuthFailureError { 

     Map<String, String> headers = new HashMap<>(); 

     String credentials = "****:***********************"; 

     String auth = "Basic " 
       + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); 

     headers.put("Content-Type", "application/json; charset=utf-8"); 

     headers.put("Authorization", auth); 

     return headers; 
    } 

    @Override 
    protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) { 

     JSONObject jsonObject = null; 

     try { 

      String data = new String(response.data, 
        HttpHeaderParser.parseCharset(response.headers)); 

      jsonObject = new JSONObject(data); 

     } catch (UnsupportedEncodingException | JSONException e) { 

      e.printStackTrace(); 

     } 

     return Response.success(jsonObject, HttpHeaderParser.parseCacheHeaders(response)); 
    } 
} 

오류 :

com.android.volley.AuthFailureError 

을 그리고 난 Base64.DEFAULT을 사용했을 때

java.lang.IllegalArgumentException: Unexpected char 0x0a at 46 in header value: Basic ************************* 

참고 :이 웹 서비스는 구글 우체부에 노력하고 있습니다 수단.

+0

서버 로그를 확인 했습니까? – Krish

+0

문제가 해결되었습니다. –

답변

-1

제 답변이 저에게 잘 돌아가는지 확인하십시오.

Check this one

+0

답변에서 권한 부여에 대해 아무 것도 볼 수 없습니다. –