我使用Volley StringRequest
向我的服务器发布查询,我发现在大约20%的情况下,请求成功,但调用了onErrorResponse
而不是{{1} }}
这是我的请求代码:
onResponse
我看到20%的时间:
StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("App", "[MainActivity] post successful");
// run very important routine only when post is successful
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("App", "[MainActivity] failed to post");
if (error == null) {
Log.e("App", "no error");
}
else if (error.networkResponse != null) {
Log.e("App", String.valueOf(error.networkResponse.statusCode));
if(error.networkResponse.data != null) {
try {
Log.e("App", new String(error.networkResponse.data, "UTF-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
else {
Log.e("App", "no network response");
}
}
});
requestQueue.add(stringRequest);
但是在我的服务器日志中,我看到一条200条消息,帖子创建的数据在我的数据库中。
为什么Volley会在成功的帖子上抛出错误?
更新
E/App: [MainActivity] failed to post
E/App: no network response
打印:Log.e("App", "error message: " + error.getMessage());
答案 0 :(得分:1)
凌空输出的错误信息是什么?请按volleyError.getMessage()
进行检查。