0

Ich versuche, Benutzername und Passwort als grundlegende Autorisierung mit JsonObjectRequest zu senden. Ich habe versucht, getHeaders() Methode überschreiben, aber es hat nicht funktioniert. Hier ist mein Code:Volley JsonObjectRequest mit Basic Auth Headern funktionierte nicht

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

Fehler beim i Base64.NO_WRAP verwendet:

com.android.volley.AuthFailureError 

Und wenn ich verwendet Base64.DEFAULT:

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

Hinweis: Dieser Webservice arbeitet an Google Postman Werkzeug.

+0

Haben Sie nach den Serverprotokollen gesucht? – Krish

+0

Problem gelöst. –

Antwort

-1

Überprüfen Sie meine Antwort funktioniert es gut für mich.

Check this one

+0

Ich kann in Ihrer Antwort nichts über Autorisierung sehen. –