Добавление пользовательских заголовков в запрос волейбола

У меня есть код запроса Volley

RequestQueue queue = Volley.newRequestQueue(this); String url =<My URL>; // Request a string response from the provided URL. StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // Display the first 500 characters of the response string. mTextView.setText("Response is: "+ response.substring(0,500)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mTextView.setText("That didn't work!"); } }); // Add the request to the RequestQueue. queue.add(stringRequest); 

Как настроить заголовок, называемый авторизацией, в этом?

Вы можете написать класс extends Request. (Переопределить getHeaders () и т. Д.) Так же, как

 public abstract class AbsRequest<T> extends Request<T>{ public AbsRequest(int method, String url, Response.ErrorListener listener) { this(method, url, null, listener); } public AbsRequest(int method, String url, Map<String, String> params, Response.ErrorListener listener) { this(method, url, params, null, listener); } public AbsRequest(int method, String url, Map<String, String> params, Map<String, String> head, Response.ErrorListener listener) { this(method, url, params, head, null, listener); } public AbsRequest(int method, String url, Map<String, String> params, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { this(method, url, params, null, head, bodyContentType, listener); } public AbsRequest(int method, String url, String body, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { this(method, url, null, body, head, bodyContentType, listener); } private AbsRequest(int method, String url, Map<String, String> params, String body, Map<String, String> head, String bodyContentType, Response.ErrorListener listener) { super(method, url, listener); } } 

Для получения дополнительной информации вы можете увидеть https://github.com/Caij/CodeHub/blob/master/lib/src/main/java/com/caij/lib/volley/request/AbsRequest.java, как использовать можно увидеть https: //github.com/Caij/CodeHub/tree/master/app/src/main/java/com/caij/codehub/presenter/imp

Переопределите getHeaders в запросе, например:

  StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { @Override public void onResponse(String response) { // Display the first 500 characters of the response string. mTextView.setText("Response is: "+ response.substring(0,500)); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mTextView.setText("That didn't work!"); } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String,String> params = super.getHeaders(); if(params==null)params = new HashMap<>(); params.put("Authorization","Your authorization"); //..add other headers return params; } }; 

Вызов super.getHeaders () вызывает UnSupportedOperationException. Удалите super.getHeaders (), чтобы избавиться от этого.