封装 Retrofit和rxjava
先建一个包net
1.建一个接口
RequestApi
package com.example.snmsung.disanzhoukaomonidemo.net; import com.example.snmsung.disanzhoukaomonidemo.Bean.MyBean; import retrofit2.http.GET; import rx.Observable; /** * Created by SNMSUNG on 2017/11/17. */ public interface RequestApi { public static final String BASE_URL = "http://result.eolinker.com/"; @GET("iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=vedio") Observable<MyBean> getData(); }
2.
RetrofitUtlie 类
package com.example.snmsung.disanzhoukaomonidemo.net; import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by SNMSUNG on 2017/11/17. */ public class RetrofitUtlie { public static RequestApi doHttpdeal() { OkHttpClient Client = new OkHttpClient.Builder() .connectTimeout(5, TimeUnit.SECONDS) .readTimeout(5, TimeUnit.SECONDS) //.addNetworkInterceptor(new MyInterceptro()) .build(); Retrofit retrofit = new Retrofit.Builder() .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .client(Client) .baseUrl(RequestApi.BASE_URL) .build(); RequestApi api = retrofit.create(RequestApi.class); return api; } }
Main 请求
private void qingqiu() { RetrofitUtlie.doHttpdeal().getData() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<MyBean>() { @Override public void onCompleted() { Log.i("---1----", "onNext: "+data1); } @Override public void onError(Throwable e) { e.printStackTrace(); Log.i("----2---", "onNext: "+e.toString()); } @Override public void onNext(MyBean myBean) { data1 = myBean.getData(); Log.i("----3---", "onNext: "+data1); recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this)); MyAdapter myAdapter=new MyAdapter(MainActivity.this, data1); recyclerView.setAdapter(myAdapter); } });
//网络拦截器
MyInterceptro
package com.example.snmsung.disanzhoukaomonidemo; import android.util.Log; import java.io.IOException; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * Created by SNMSUNG on 2017/11/17. */ public class MyInterceptro implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request request=chain.request(); Log.i("===url====", "intercept: "+request.url()); Log.i("====res_headers====", "intercept: "+request.headers()); Response res= chain.proceed(request); Log.i("=====req_headers===", "intercept: "+res.headers()); Log.i("====body=======", "intercept: "+res.body().string()); return res; } }