美文网首页
后台接口请求在贯穿app前后台切换过程中失效

后台接口请求在贯穿app前后台切换过程中失效

作者: 锦上添花花花 | 来源:发表于2020-07-28 17:27 被阅读0次

今天偶然发现一个问题,如题,记下,以备以后注意。

我用的请求框架是Retrofit,在body拦截器里匹配异常message就可以解决,发现了几个异常message:

"Canceled"、"Socket closed"、"Socket is closed"等等,于是匹配就行了

public InterceptorbodyInterceptor() {

Interceptor bodyInterceptor =new Interceptor() {

@Override

        public Responseintercept(Chain chain) {

Request originalRequest = chain.request();

            Request requestBuilder = originalRequest.newBuilder()

.build();

            try {

return chain.proceed(requestBuilder);

            }catch (IOException e) {

e.printStackTrace();

                //如果一个后台接口请求贯穿手机前台和后台切换,那么就会报包含如下字符串的message的IO异常,比如刷新后立马切换APP到后台

                //"Canceled"、"Socket closed"、"Socket is closed"等等

                if (e.getMessage() !=null && (e.getMessage().toLowerCase().contains("Canceled".toLowerCase()) ||

e.getMessage().toLowerCase().contains("closed".toLowerCase())) && getListener() !=null) {

getListener().onCancel();

                }

}

return null;

        }

};

    return bodyInterceptor;

}

相关文章

网友评论

      本文标题:后台接口请求在贯穿app前后台切换过程中失效

      本文链接:https://www.haomeiwen.com/subject/wfqqrktx.html