出现NetworkUtility.shouldRetryException 401错误 如何为Volley请求添加请求头
解决Volley登录请求401错误及添加请求头方法
问题说明
你当前遇到的401响应码代表接口未授权,同时你的代码存在一个明显错误:你将Content-Type写在了请求体JSON中,请求头需要单独配置才会生效。
具体修改步骤
- 首先删除原有代码中
jsonObject.put("Context-Type","application/json");这行无效代码 - 初始化
JsonObjectRequest时重写getHeaders()方法添加自定义请求头,修改后的代码如下:
// Post请求 JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url,jsonObject,successListener,errorListener){ @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); // 添加Content-Type请求头 headers.put("Content-Type", "application/json; charset=utf-8"); // 如果接口要求其他授权头,比如Bearer认证的token,添加对应项即可 // headers.put("Authorization", "Bearer 你的接口授权令牌"); return headers; } }; mRequestQueue.add(request);
注意事项
- 需要提前导入相关类:
java.util.HashMap、java.util.Map、com.android.volley.AuthFailureError - 如果添加授权头后还是返回401,请检查授权信息的有效性,比如token是否过期、拼接格式是否符合接口要求
内容的提问来源于stack exchange,提问作者Moses tenai
相关产品推荐
相关产品推荐

