Android Volley.NET Rest令牌授权失败
我正在尝试使用WebAPI的内置.NET框架,该框架使用令牌身份验证系统。这些API正在Android中使用Volley 所以这些API在postman中测试时工作得非常好,所以我将分享一个postman配置的屏幕截图,下面是我在Android中使用的代码 调用此函数时,根据传递参数和头的方式,会出现以下错误之一:Android Volley.NET Rest令牌授权失败,android,asp.net-web-api,android-volley,token,Android,Asp.net Web Api,Android Volley,Token,我正在尝试使用WebAPI的内置.NET框架,该框架使用令牌身份验证系统。这些API正在Android中使用Volley 所以这些API在postman中测试时工作得非常好,所以我将分享一个postman配置的屏幕截图,下面是我在Android中使用的代码 调用此函数时,根据传递参数和头的方式,会出现以下错误之一: com.android.volley.ServerError com.android.volley.AuthFailureError 我不确定哪一个错误首先出现,也就是说,它能在A
com.android.volley.ServerError
com.android.volley.AuthFailureError
AuthFailureError
之前或之后抛出服务器错误,因此很难确定它是否曾经授权,或者URL参数是否正确传递
有人知道我做错了什么吗?我一直在搜索StackOverFlow,但什么都不管用
另外,对于所有的黑色衬里和敏感信息,我也很抱歉:D试试这个
public static void getUserDetails(final String userId, final String token, RequestQueue requestQueue){
StringRequest stringRequest = new StringRequest(Request.Method.GET,
apiPath + "API/points/getUserDetails?UserId=" + userId,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("API", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("API", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError{
Map<String, String> params = new HashMap<String, String>();
params.put("Authorization", "Bearer " + token);
return params;
}
};
requestQueue.add(stringRequest);
publicstaticvoid getUserDetails(最终字符串用户ID、最终字符串令牌、请求队列){
StringRequest StringRequest=新StringRequest(Request.Method.GET,
apiPath+“API/points/getUserDetails?UserId=“+UserId,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.i(“API”,响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.i(“API”,error.toString());
}
}) {
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map params=新的HashMap();
参数put(“授权”、“持票人”+代币);
返回参数;
}
};
添加(stringRequest);
谢谢你的回答这对我来说很有用,但是你能给我解释一下getParams()的确切用途吗?有人会认为getParams()代替了你自己连接url字符串的需要?或者getParams只是用来提交表单数据吗?你不能在执行get请求时使用getParam
public static void getUserDetails(final String userId, final String token, RequestQueue requestQueue){
StringRequest stringRequest = new StringRequest(Request.Method.GET,
apiPath + "API/points/getUserDetails",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("API", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("API", error.toString());
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("UserId", userId);
return params;
}
@Override
public Map<String, String> getHeaders(){
Map<String, String> params = new HashMap<String, String>();
params.put("Authorization", "Bearer " + token);
return params;
}
};
requestQueue.add(stringRequest);
public static void getUserDetails(final String userId, final String token, RequestQueue requestQueue){
StringRequest stringRequest = new StringRequest(Request.Method.GET,
apiPath + "API/points/getUserDetails?UserId=" + userId,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.i("API", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("API", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError{
Map<String, String> params = new HashMap<String, String>();
params.put("Authorization", "Bearer " + token);
return params;
}
};
requestQueue.add(stringRequest);