我开始使用Volley作为我的应用程序,我想为每个请求添加自定义标头作为安全标识符。 我正在使用JsonObjectRequest
并覆盖了getHeaders()
。为Volley库添加自定义标头
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
url,
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG, response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<>();
String mApiKey = "123";
headers.put("APIKEY", mApiKey);
return headers;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<>();
params.put("param1", "1");
params.put("param2", "2");
params.put("param3", "3");
return params;
}
};
VolleySingleton.getInstance(getActivity()).addToRequestQueue(jsonObjectRequest);
但我得到这个错误:
E/Volley﹕ [23620] BasicNetwork.performRequest: Unexpected response code 401 for http://...
的AuthFailureError
被抛出。
我也尝试使用StringRequest
但同样的错误。
如果有人在同一个案中并有解决方案,请提前致谢!
你测试了一个命令行卷曲或者工作邮递员铬插件您的要求标准VolleyRequest覆盖头?你确实得到了回应,这是预期的回应吗?你在期待什么API?您是否尝试拦截您的网络流量(mitm代理)或记录流量,以便您可以查看是否在请求上设置了标头? – 2015-02-24 13:34:18
@ A.S。是的,我尝试了邮差,它的工作原理。更多的时候我尝试使用DefaultHttpClient和HttpGet它也可以。我会尝试拦截我的网络流量,但我怀疑标题未设置。 – Alex 2015-02-24 13:34:58
@ A.S。我不能安装mitm代理,但我很确定标题没有设置为getHeaders() – Alex 2015-02-24 14:12:05