use of me.jessyan.rxerrorhandler.handler.listener.ResponseErroListener in project MVPArms by JessYanCoding.
the class WEApplication method getGlobeConfigModule.
/**
* app的全局配置信息封装进module(使用Dagger注入到需要配置信息的地方)
* GlobeHttpHandler是在NetworkInterceptor中拦截数据
* 如果想将请求参数加密,则必须在Interceptor中对参数进行处理,GlobeConfigModule.addInterceptor可以添加Interceptor
* @return
*/
@Override
protected GlobeConfigModule getGlobeConfigModule() {
return GlobeConfigModule.buidler().baseurl(Api.APP_DOMAIN).globeHttpHandler(new // 这里可以提供一个全局处理http响应结果的处理类,
GlobeHttpHandler() {
// 这里可以比客户端提前一步拿到服务器返回的结果,可以做一些操作,比如token超时,重新获取
@Override
public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) {
//重新请求token,并重新执行请求
try {
if (!TextUtils.isEmpty(httpResult)) {
JSONArray array = new JSONArray(httpResult);
JSONObject object = (JSONObject) array.get(0);
String login = object.getString("login");
String avatar_url = object.getString("avatar_url");
Timber.tag(TAG).w("result ------>" + login + " || avatar_url------>" + avatar_url);
}
} catch (JSONException e) {
e.printStackTrace();
return response;
}
//如果不需要返回新的结果,则直接把response参数返回出去
return response;
}
// 这里可以在请求服务器之前可以拿到request,做一些操作比如给request统一添加token或者header
@Override
public Request onHttpRequestBefore(Interceptor.Chain chain, Request request) {
// .build();
return request;
}
}).responseErroListener(new ResponseErroListener() {
// 用来提供处理所有错误的监听
// rxjava必要要使用ErrorHandleSubscriber(默认实现Subscriber的onError方法),此监听才生效
@Override
public void handleResponseError(Context context, Exception e) {
Timber.tag(TAG).w("------------>" + e.getMessage());
UiUtils.SnackbarText("net error");
}
}).build();
}
Aggregations