Я хочу сделать заголовок Auth для ВСЕХ моих запросов Volley. Я узнал, как я могу создать заголовок, переопределяющий getHeaders класса запроса, но я не могу время от времени изменять его из каждого запроса и хочу, чтобы он сортировался Стати c или глобальный, где я могу изменить его, и он меняется везде. Вот что я пробовал до сих пор.
Основной класс активности
public class MainActivity extends AppCompatActivity {
RequestQueue requestQueue;
JsonObjectRequest jsonreq;
JSONObject object;
try{
requestQueue = Volley.newRequestQueue(MainActivity.this);
object=new JSONObject();
jsonreq=new JsonObjectRequest(Request.Method.POST, url, object, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
res=response.toString();
Log.d("log1","res : " + res);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("log1","Error from response : " +error.networkResponse.statusCode);
}
}) {
//want to get rid of this function from here and create in a global scope so I can control its implementation everywhere
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params=new HashMap<String,String>();
params.put("Authorization","xxxxxxxx");
return params;
}
};
requestQueue.add(jsonreq);
}
catch (Exception e){
Log.d("log1","error from catch " + e);
return e.toString();
}
return res;
Я попытался создать собственный класс, который расширяет HurlStack и переопределяет запрос на выполнение. Вот код для пользовательского класса HurlStack под названием GlobalHeaders
public class GlobalHeaders extends HurlStack {
String testing="xxxxxxxx";
@Override
public HttpResponse executeRequest(Request<?> request, Map<String, String> additionalHeaders) throws IOException, AuthFailureError {
Map<String, String> headers = request.getHeaders();
headers.put("Content-Type", "application/json; charset=utf-8");
headers.put("Authorization",testing);
return super.executeRequest(request, headers);
}
Теперь я не уверен, как я могу использовать этот метод в своем основном классе, где я добавляю requestQueue (jsonReq); Я попробовал другой способ, где я переопределил класс Request Volley своим собственным классом, но снова потерпел неудачу. Пожалуйста, укажите, как я могу сделать эту работу или любой другой подход. Я новичок в Java и Android.