网络权限 使用的接空是斜线参数接口 compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.squareup.retrofit2:retrofit:2.4.0' compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
service
package com.example.retrofit2rxjava2last; import io.reactivex.Flowable; import retrofit2.http.GET; import retrofit2.http.Path; /** * Created by Administrator on 2018/5/19 0019. */ public interface ApiService { @GET("{type}/20/{page}") Flowable<AllBean> getall(@Path("type") String type, @Path("page") String page); }
RetrofitUtils ///
package com.example.retrofit2rxjava2last; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by Administrator on 2018/5/19 0019. */ public class RetrofitUtils { private static volatile RetrofitUtils instance; public static RetrofitUtils getInstance(){ if(instance==null){ synchronized (RetrofitUtils.class){ if(instance==null){ instance=new RetrofitUtils(); } } } return instance; } public Retrofit getNews(){ // http://gank.io/api/data/%E7%A6%8F%E5%88%A9/10/1 String baseurl="http://gank.io/api/data/"; //日志拦截器 HttpLoggingInterceptor interceptor=new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); OkHttpClient okHttpClient=new OkHttpClient.Builder() .addInterceptor(interceptor) .build(); Retrofit retrofit=new Retrofit.Builder() .baseUrl(baseurl) .client(okHttpClient) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .build(); return retrofit; } }
使用//
RetrofitUtils retrofitUtils=new RetrofitUtils(); retrofitUtils=RetrofitUtils.getInstance(); retrofitUtils.getNews() .create(ApiService.class) .getall("all","1") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new DisposableSubscriber<AllBean>() { @Override public void onNext(AllBean bean) { Log.d("yyy",bean.getResults().size()+""); /* adapter = new RecyclerViewAdapterall(context, title); mAdapter = new RecyclerAdapterWithHF(adapter); mRecyclerView.setAdapter(mAdapter);*/ } @Override public void onError(Throwable t) { } @Override public void onComplete() { Log.d("yyy","onComplete"); } });