依赖
//retrofit
compile 'com.squareup.retrofit2:retrofit:+'
compile 'com.squareup.retrofit2:converter-gson:+'
//Rxjava2
compile 'io.reactivex.rxjava2:rxjava:+'
compile 'io.reactivex.rxjava2:rxandroid:+'
//让retrofit支持Rxjava2
compile 'com.squareup.retrofit2:adapter-rxjava2:+'
compile 'com.squareup.retrofit2:retrofit:+'
compile 'com.squareup.retrofit2:converter-gson:+'
//Rxjava2
compile 'io.reactivex.rxjava2:rxjava:+'
compile 'io.reactivex.rxjava2:rxandroid:+'
//让retrofit支持Rxjava2
compile 'com.squareup.retrofit2:adapter-rxjava2:+'
封装
import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitHelper { public static Retrofit retrofit; public static Retrofit getRetrofit(String url) { if (retrofit == null) { synchronized (RetrofitHelper.class) { if (retrofit == null) { OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new Intercept()) .build(); retrofit = new Retrofit.Builder() .baseUrl(url) .client(client) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } } } return retrofit; } }
import java.io.IOException; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; public class Intercept implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); HttpUrl url=original.url().newBuilder() .addQueryParameter("source","android") .build(); //添加请求头 Request request = original.newBuilder() .url(url) .build(); return chain.proceed(request); } }public interface RetiofitVip { @GET("地址") Observable<Login> shoppingCar(@Query("字段名字") String name); }使用public class HomeModel { public void getLogin(String name, String password, final IPre shopDelete_p) { RetiofitVip retiofitVip = RetrofitHelper.getRetrofit("相同地址").create(RetiofitVip.class); retiofitVip.shoppingCar(name, password) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Login>() { @Override public void accept(Login login) throws Exception { if (login != null) { shopDelete_p.onSuccess(login); } else { shopDelete_p.onFailed("数据错误"); } } }); } }