首先写一个接口
public interface AdApiService { @GET("ad/getAd") Observable<AdBean> getAd(); }
然后定义一个类单例
public class AdApi { private static AdApi adApi; private AdApiService adApiService; private AdApi(AdApiService adApiService) { this.adApiService = adApiService; } public static AdApi getAdApi(AdApiService adApiService) { if (adApi == null) { adApi = new AdApi(adApiService); } return adApi; } public Observable<AdBean> getAd() { return adApiService.getAd(); } }
写一个文件夹Module里面写一个类HttpModule
@Module public class HttpModule { @Provides OkHttpClient.Builder provideOkHttpClientBuilder() { return new OkHttpClient.Builder() .writeTimeout(20, TimeUnit.SECONDS) .readTimeout(20, TimeUnit.SECONDS) .connectTimeout(10, TimeUnit.SECONDS); } @Provides LoginApi provideLoginApi(OkHttpClient.Builder builder) { Retrofit retrofit = new Retrofit.Builder() .baseUrl(Api.BASEURL) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .client(builder.build()) .build(); LoginApiService loginApiService = retrofit.create(LoginApiService.class); return LoginApi.getLoginApi(loginApiService); }}
连接需要一个桥梁写一个文件夹Component定义一个类HttpComponent,将所需要的页面定义在里面
@Component(modules = HttpModule.class) public interface HttpComponent { void inject(LoginActivity loginActivity); void inject(HomePageFragment homePageFragment); }