美文网首页
Retrofit2+RxJava2遇到接口返回空数据Null的拦

Retrofit2+RxJava2遇到接口返回空数据Null的拦

作者: 良哥哥好帅 | 来源:发表于2019-10-10 09:41 被阅读0次

    OKHTTP3添加一个拦截器,碰到接口只返回code200的接口,添加一个NullResponseInterceptor拦截器,再次封装Response数据

    okhttp初始化处添加拦截器

    okhttpBuilder.addInterceptor(new NullResponseInterceptor());
    

    拦截器NullResponseInterceptor的代码

    /**
     * Created by dexter on 2019-09-09.
     * Retrofit2的2.0版本不支持解析OnNext的Null数据,拦截器做规范化返回数据
     */
    public class NullResponseInterceptor implements Interceptor {
    
        @Override
        public Response intercept(Chain chain) throws IOException {
            Response response = chain.proceed(chain.request());
    
            if (response.body().contentLength() == 0 && response.code() == 200) {
                MediaType mediaType = response.body().contentType();
                //*********添加自定义的解析基类*********
                BaseJson baseJson = new BaseJson();
                baseJson.code = 200;
                baseJson.message = "Success";
                 //*********添加自定义的解析基类*********
                String baseJsonString = new Gson().toJson(baseJson);
                ResponseBody responseBody = ResponseBody.create(mediaType, baseJsonString);
                return response.newBuilder().body(responseBody).build();
            } else {
                return response;
            }
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:Retrofit2+RxJava2遇到接口返回空数据Null的拦

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