如何解决Android Volley:无法处理 POST 错误[61015] BasicNetwork.performRequest:[URL] 的意外响应代码 400
因此,我尝试在 Android 上使用 Volley 发出 POST
请求,但我总是收到我放在线程标题中的错误。如果来自服务器的响应为 200
,一切正常,但我无法处理 400
之类的错误,即使它们在 Postman 上显示为应有的状态。我从互联网上尝试了许多不同的解决方案,因为很多人似乎都有这个问题,但不幸的是,没有什么对我有用...
注意:来自同一 URL 的 GET
请求工作正常。
下面是我的代码:
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,url,postData,new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response) {
try {
int status = response.getInt("status");
if(status == 200) {
//success
}else if(status == 400){
//although the condition for the 200 request works,this one is never reached in case of an error
}
}
} catch (JSONException e) {
e.printstacktrace();
}
}
},new Response.ErrorListener() //nothing works here as well,frmo what I Could tell
{
public void onErrorResponse(VolleyError error) {
NetworkResponse response = error.networkResponse;
if (error instanceof ServerError && response != null) {
try {
String res = new String(response.data,HttpHeaderParser.parseCharset(response.headers,"utf-8"));
JSONObject obj = new JSONObject(res);
} catch (UnsupportedEncodingException e1) {
e1.printstacktrace();
} catch (JSONException e2) {
e2.printstacktrace();
}
}
}
}
) {
@Override
public Map<String,String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String,String>();
params.put("Authorization","Bearer "+ MY_TOKEN);
//I have tried many variations on the line below and nothing works
params.put("Content-Type","application/json; charset=utf-8");
return params;
}
@Override
public String getBodyContentType() {
return "application/json";
}
};
queue.add(jsonObjectRequest);
感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。