package com.common.net.volley; import java.io.EOFException; import java.net.UnknownHostException; import android.content.Context; import android.content.res.Resources; import com.android.volley.AuthFailureError; import com.android.volley.NetworkError; import com.android.volley.NoConnectionError; import com.android.volley.ParseError; import com.android.volley.ServerError; import com.android.volley.TimeoutError; import com.android.volley.VolleyError; import com.google.gson.JsonSyntaxException; import com.wb.sc.R; public class VolleyErrorHelper { /** * 获取错误信息 * AuthFailureError:如果在做一个HTTP的身份验证,可能会发生这个错误。 * NetworkError:Socket关闭,服务器宕机,DNS错误都会产生这个错误。 * NoConnectionError:和NetworkError类似,这个是客户端没有网络连接。 * ParseError:在使用JsonObjectRequest或JsonArrayRequest时,如果接收到的JSON是畸形,会产生异常。 * SERVERERROR:服务器的响应的一个错误,最有可能的4xx或5xx HTTP状态代码。 * TimeoutError:Socket超时,服务器太忙或网络延迟会产生这个异常。默认情况下,Volley的超时时间为2.5秒。如果得到这个错误可以使用RetryPolicy。 * @param error * @return */ public static String getErrorMessage(Context context, VolleyError error) { String errorMsg = ""; Resources resources = context.getResources(); if (error instanceof TimeoutError) { errorMsg = resources.getString(R.string.net_error_timeout); } else if(error instanceof NoConnectionError) { if(error.getCause() instanceof UnknownHostException || error.getCause() instanceof EOFException ) { errorMsg = resources.getString(R.string.net_error_connect_network); } else { if(error.getCause().toString().contains("Network is unreachable")) { errorMsg = resources.getString(R.string.net_error_no_network); } else { errorMsg = resources.getString(R.string.net_error_connect_network); } } } else if(error instanceof NetworkError) { errorMsg = resources.getString(R.string.net_error_connect_network); } else if(error instanceof AuthFailureError) { errorMsg = resources.getString(R.string.net_error_auth_failure); } else if(error instanceof ServerError) { errorMsg = resources.getString(R.string.net_error_server, error.networkResponse.statusCode); } else if(error instanceof ParseError || error.getCause() instanceof JsonSyntaxException){ errorMsg = resources.getString(R.string.net_error_parser); } else if(error.getCause() instanceof NullPointerException){ errorMsg = resources.getString(R.string.net_error_null_pointer); } else { errorMsg = resources.getString(R.string.net_error_unkown); } return errorMsg; } }