Retrofit+拦截器的使用+拦截器文件

来源:互联网 发布:简述对大数据的理解 编辑:程序博客网 时间:2024/05/17 06:43

//拦截器的使用

public class LoggingInterceptor implements Interceptor {
    private static final String UA = "User-Agent";

    @Override
    public Response intercept(Chain chain) throws IOException {
        Request request = chain.request()
                .newBuilder()
                .addHeader(UA, makeUA())
                .build();
        return chain.proceed(request);
    }

    private String makeUA() {
        String s = Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE;
        return Build.BRAND + "/" + Build.MODEL + "/" + Build.VERSION.RELEASE;
    }

}


//

public class Model implements Imm {    private Bean bean;    OkHttp3Utils  okhttp;    @Override    public void shuju(Observer<Bean> observer) {        okhttp=new OkHttp3Utils();        //创建被观察者        Observable.create(new Observable.OnSubscribe<Bean>() {            @Override            public void call(final Subscriber<? super Bean> subscriber) {             //拦截器的使用                OkHttpClient   oc=new OkHttpClient.Builder().addInterceptor(new LoggingInterceptor()).build();                Retrofit retrofit = new Retrofit.Builder()                        .client(oc)                        //设置网络请求的url                        .baseUrl("http://tingapi.ting.baidu.com/v1/restserver/")                        //设置Gson                        .addConverterFactory(GsonConverterFactory.create())                        //设置Rxjava                        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())                        .build();                //创建网络请求接口的实例                GetRequest_In jk = retrofit.create(GetRequest_In.class);                //对发的请求进行封装                Call<Bean> call = jk.getCall();                //使用异步发送网络请求                call.enqueue(new retrofit2.Callback<Bean>() {                    //请求成功时回调                    @Override                    public void onResponse(Call<Bean> call, Response<Bean> response) {                        bean = response.body();                        //调用OnNext方法把值传给观察者                        subscriber.onNext(bean);                        subscriber.onCompleted();                    }                    //请求失败时的回调                    @Override                    public void onFailure(Call<Bean> call, Throwable t) {                    }                });            }        }).subscribeOn(Schedulers.newThread()).observeOn(AndroidSchedulers.mainThread())                .subscribe(observer);    }}




原创粉丝点击