如果您需要在排球请求中添加自定义标头,则初始化后便无法执行此操作,因为标头保存在私有变量中。
相反,您需要覆盖这样的getHeaders()方法Request.class:
new JsonObjectRequest(REQUEST_METHOD, REQUEST_URL, REQUEST_BODY, RESP_LISTENER, ERR_LISTENER) { @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> customHeaders = new Hashmap<>(); customHeaders.put("KEY_0", "VALUE_0"); ... customHeaders.put("KEY_N", "VALUE_N"); return customHeaders; } };
参数说明:
REQUEST_METHOD-Request.Method.*常量之一。
REQUEST_URL -发送请求的完整URL。
REQUEST_BODY-JSONObject包含要发送的POST-Body的(或null)。
RESP_LISTENER-一个Response.Listener<?>对象,onResponse(T data)成功完成后将调用其方法。
ERR_LISTENER-一个Response.ErrorListener对象,其对象onErrorResponse(VolleyError e)将在请求失败时被调用。
如果要构建自定义请求,也可以在其中添加标头:
public class MyCustomRequest extends Request { ... @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> customHeaders = new Hashmap<>(); customHeaders.put("KEY_0", "VALUE_0"); ... customHeaders.put("KEY_N", "VALUE_N"); return customHeaders; } ... }