package com.derson.pumelo.network.volley; import android.content.Context; import com.derson.pumelo.R; import com.derson.pumelo.app.BaseApplication; /** * Created by chengli on 15/7/5. * Volley错误信息处理类 */ public class VolleyErrorHelper { //错误类型列表 //AuthFailureError:如果在做一个HTTP的身份验证,可能会发生这个错误。 //NetworkError:Socket关闭,服务器宕机,DNS错误都会产生这个错误。 //NoConnectionError:和NetworkError类似,这个是客户端没有网络连接。 //ParseError:在使用JsonObjectRequest或JsonArrayRequest时,如果接收到的JSON是畸形,会产生异常。 //ServerError:服务器的响应的一个错误,最有可能的4xx或5xx HTTP状态代码。 //TimeoutError:Socket超时,服务器太忙或网络延迟会产生这个异常。默认情况下,Volley的超时时间为2.5秒。如果得到这个错误可以使用RetryPolicy。 public static String getErrorMessage(Object error) { Context cxt = BaseApplication.getInstance(); if(error instanceof TimeoutError) { return cxt.getString(R.string.timeout_error); } else if(isNetworkProblem(error)) { return cxt.getString(R.string.network_common_error); } else if(isServerProblem(error)) { return cxt.getString(R.string.server_error); } else if(error instanceof ParseError) { return cxt.getString(R.string.data_parser_error); } return cxt.getString(R.string.network_common_error); } private static boolean isNetworkProblem(Object error) { return (error instanceof NetworkError) || (error instanceof NoConnectionError); } private static boolean isServerProblem(Object error) { return (error instanceof ServerError) || (error instanceof AuthFailureError); } }