為你的請求新增自定義標頭,例如基本身份驗證
如果你需要為你的排球請求新增自定義標題,則在初始化後無法執行此操作,因為標題會儲存在私有變數中。
相反,你需要覆蓋 Request.class
的 getHeaders()
方法:
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
- 包含要傳送的 POST-Body 的JSONObject
(或 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;
}
...
}