0

Я пытаюсь отправить имя пользователя и пароль в качестве основного разрешения с помощью JsonObjectRequest. Я попытался переопределить метод getHeaders(), но это не сработало. Вот мой код:Volley JsonObjectRequest с базовыми заголовками Auth не работает

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

Ошибка, когда я использовал Base64.NO_WRAP:

com.android.volley.AuthFailureError 

И когда я использовал Base64.DEFAULT:

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

Примечание: Это веб-сервис работает на Google Почтальон инструмент.

+0

Вы проверили журналы сервера? – Krish

+0

Проблема решена. –

ответ

-1

Отметьте, пожалуйста, свой рабочий штраф.

Check this one

+0

Я ничего не вижу в авторизации в вашем ответе. –

Смежные вопросы