首页 > 解决方案 > getHeaders Override 方法未添加到请求中

问题描述

我正在尝试通过 Volley 在 Android 中执行简单的 GET 请求。但是,当我调试它时,仅在将请求添加到队列后才调用覆盖方法。所以我的请求认为 headers 对象是空的并且在后端检查中失败。如何使请求在发送到后端之前消耗我的标头?我到处都查看了示例,但我无法弄清楚为什么我的不起作用。请帮忙!

private void getHello(){
    String helloUrl = "https://...";
    final String basicAuth = "Basic " + Base64.encodeToString("testUser:somePassword".getBytes(), Base64.NO_WRAP);

    StringRequest stringRequest = new StringRequest(Request.Method.GET, helloUrl, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.e("Hello Response: ",response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Hello Response Error: ",error.toString());
        }
    }){
        @Override
        public Map<String,String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("Content-Type", "application/json");
            params.put("X-FXF-clientid", "123");
            params.put("authorization", basicAuth);
            return params;
        }
    };
    queue.add(stringRequest);
}

标签: androidrestandroid-volley

解决方案


推荐阅读