Android截击AuthFailureError

Android截击AuthFailureError,android,rest,android-volley,http-get,custom-headers,Android,Rest,Android Volley,Http Get,Custom Headers,我试图在截击中提出以下要求: 请求被调用了两次,我得到一个401错误,这是服务器身份验证错误,比如令牌无效(我已经检查过了,令牌有效): 我试过: 使用JsonObjectRequest和 JsonArrayRequest,两者都给出相同的错误 尝试使用accept和content type,也不使用这些标头,得到相同的错误 最后一次尝试是使用以下代码,StringRequest,以及 内容类型标题: public void getUserFriends(最终API.OnAPIRespo

我试图在截击中提出以下要求:

请求被调用了两次,我得到一个401错误,这是服务器身份验证错误,比如令牌无效(我已经检查过了,令牌有效):

我试过:

  • 使用JsonObjectRequest和 JsonArrayRequest,两者都给出相同的错误
  • 尝试使用accept和content type,也不使用这些标头,得到相同的错误
  • 最后一次尝试是使用以下代码,StringRequest,以及 内容类型标题:
public void getUserFriends(最终API.OnAPIResponse侦听器){
FriendsRequest请求=FriendsRequest.newInstance(侦听器);
//添加此项以查看是否停止调用两次
request.setRetryPolicy(新的DefaultRetryPolicy(0,DefaultRetryPolicy.DEFAULT\u MAX\u RETRIES,DefaultRetryPolicy.DEFAULT\u BACKOFF\u MULT));
VolleySingleton.getInstance().addToRequestQueue(请求);
}
私有静态类FriendsRequest扩展了StringRequest{
公共静态好友请求新实例(最终API.OnAPIResponse侦听器){
字符串serviceURL=API.API\uURL+好友路径;
返回新的FriendsRequest(Request.Method.GET、serviceURL、new Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
APIResponse APIResponse=null;
if(侦听器!=null){
onResponse(apireponse);
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
错误。printStackTrace();
APIResponse APIResponse=getErrorResponse(错误);
if(侦听器!=null){
onResponse(apireponse);
}
}
});
}
PublicFriendsRequest(int方法,字符串url,Response.ListenerListener,Response.ErrorListener ErrorListener){
super(方法、url、侦听器、errorListener);
}
公共好友请求(字符串url,Response.ListenerListener,Response.ErrorListener ErrorListener){
超级(url、侦听器、errorListener);
}
@凌驾
公共映射getHeaders()抛出AuthFailureError{
HashMapheaders=newapi().getTokenHeader();
headers.put(“内容类型”、“应用程序/json;字符集=utf-8”);
Log.d(“网络”,headers.toString());
返回标题;
}
}
我确实设法向该API发出了一个请求,它不需要令牌头

更新:我还在努力;使用EasyVolley,我得到了相同的错误:

EasyVolley.withGlobalQueue()
.load(API\u URL+好友\u路径)
.addHeader(“令牌”,TokenGenerator.getToken())
.addHeader(“内容类型”、“应用程序/json;字符集=utf-8”)
.asJsonObject()
.setSubscriber(主活动)
.setCallback(新的ASFRequestListener(){
@凌驾
成功时公共无效(JsonObject响应){
Log.d(“response”,response.toString());
}
@凌驾
公共失效失效失效(例外e){
e、 printStackTrace();
}
})
.start();
得到相同的错误,但至少调用了一次:

更新:使用OkHttp进行测试,不知道还可以尝试什么,我已经检查了多次,该令牌在RESTClient中工作

OkHttpClient=new-OkHttpClient();
okhttp3.请求=新建
okhttp3.Request.Builder()
.header(“token”,TokenGenerator.getToken())
.url(API\u url+好友路径)
.build();
//获取可用于发布到主线程的处理程序
client.newCall(request).enqueue(new Callback()){
@凌驾
公共void onFailure(调用调用,IOE异常){
e、 printStackTrace();
}
@凌驾
public void onResponse(调用,最终okhttp3.Response)抛出IOException{
response.headers();
如果(!response.issusccessful()){
抛出新IOException(“意外代码”+响应);
}
}
});

@DanC谢谢,但我刚刚尝试过OkHTTP,所以我不认为这是原因。顺便说一句,这是因为服务器需要一些cookie:)@DanC谢谢,但我刚刚尝试过OkHTTP,所以我不认为这是原因。顺便说一句,这是因为服务器需要一些cookie:)