因此,我正在使用Volley
将发帖请求发送到我的服务器。我所有的请求都有不同的参数,但我希望它们使用相同的标头(用于授权)。我已经实现了大多数请求。我正在像这样实现它们
// Tag used to cancel the request
String tag_string_req = "req_fetch_colleagues";
StringRequest stringRequest = new StringRequest(Request.Method.POST,
AppConfig.URL_GET_COLLEAGUES, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Get Colleagues Response: " + response);
// Do stuff with the response
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Error fetching colleagues: " + error.getMessage());
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting parameters to url
Map<String, String> params = new HashMap<>();
params.put("db_company", ((MainActivity)getActivity()).getUserCompany());
params.put("unique_id", ((MainActivity)getActivity()).getUserUid());
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(stringRequest, tag_string_req);
如您所见,我正在将请求添加到AppController中的RequestQueue中。 addToRequestQueue方法看起来像这样
public <T> void addToRequestQueue(Request<T> req, String tag) {
req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);
// Add appropriate header?
getRequestQueue().add(req);
}
我知道我可以通过在覆盖getHeaders()
方法的同一位置覆盖getParams()
方法来指定标头,但是然后我必须为要发送的每个请求执行此操作。
我的问题是,我可以在header(s)
方法中为所有请求设置addToRequestQueue
吗?这样可以节省很多时间,以后我可以更轻松地更改标题。