【转自】原文
项目中有时候一个网络请求出现问题,只知道是服务器错误,不知道具体出错原因和出错位置,使后台开发人员工作量增大,开发效率变低。
给出一个可以获取网络请求失败具体出错原因和出错位置的方法
因为网络出错的原因很多,偶尔会出现空指针引起的闪退,因此捕获这个空指针,防止闪退,也不影响逻辑,因为这只是实现方便查看服务器出错信息的功能
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "VolleyError:" + error.toString());
try {
byte[] htmlBodyBytes = error.networkResponse.data;
Log.e(TAG, new String(htmlBodyBytes), error);
} catch (NullPointerException e) {
e.printStackTrace();
}
if (CheckNewWorkConnection.isNetworkConnected(getApplicationContext())) {
ToastUtil.showShortToast(CircleActivity.this, "服务器连接异常");
....
}else{
Toast.makeText(getApplicationContext(), "网络连接失败,请检查您的网络", Toast.LENGTH_SHORT).show();
}
}
}