2
我使用Volley StringRequest
向我的服務器發送查詢,並且我發現在大約20%的情況下,請求成功,但調用onErrorResponse
而不是onResponse
。Volley POST在成功請求時拋出錯誤
這裏是我的請求代碼:
E/App: [MainActivity] failed to post
E/App: no network response
但在我的服務器日誌我看到後產生的200消息和數據是:我看的時候
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);
20%在我的數據庫中。
Volley爲什麼會在成功的帖子上拋出錯誤?
UPDATE
Log.e("App", "error message: " + error.getMessage());
打印:E/App: error message: null
其「null」。 'getLocalizedMessage'也一樣 – Cbas
@Cbas你有沒有使用[Charles](https://www.charlesproxy.com/)這樣的工具監視服務器的響應?檢查從服務器獲得的什麼樣的排球。 – AssIstne