声明后的Android Volley更改请求标头

时间:2018-07-31 12:08:34

标签: android request http-headers android-volley

因此,我正在使用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吗?这样可以节省很多时间,以后我可以更轻松地更改标题。

0 个答案:

没有答案