自己简单封装的网络请求框架,适合快速开发
build.gradle文件:
implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.okhttp3:okhttp:3.3.1'
implementation 'com.squareup.retrofit2:converter-gson:2.2.0'
// 引入请求适配器
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0-RC3'
// 引入RxAndroid适应Android开发需求
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.google.code.gson:gson:2.8.2'
Retrofit的管理类:
private static ReaderApi instance;
private RetrofitService service;
/**
* 请求超时时间
*/
private static final int DEFAULT_TIME_OUT = 50000;
public ReaderApi() {
// 创建 OKHttpClient
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.connectTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//连接超时时间
builder.writeTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//写操作 超时时间
builder.readTimeout(DEFAULT_TIME_OUT, TimeUnit.SECONDS);//读操作超时时间
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("网络请求BaseUrl")
.client(builder.build())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
service = retrofit.create(RetrofitService.class);
}
public static ReaderApi getInstance() {
if (null == instance) {
instance = new ReaderApi();
}
return instance;
}
public Observable<"这里是返回的JsonBean"> getHttpInfo("这里是传参") {
return service.getHttpInfo("这里是传参");
}
RetrofitService:
@FormUrlEncoded
@POST("网络请求url")
Observable<"这里是返回的JsonBean"> getHttpInfo(@Field("post请求key值") String "这里是传参");
调用:
ReaderApi.getInstance()
.getHttpInfo("这里是传参")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<MessageBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(MessageBean value) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
可以在此基础上进行进一步封装。
网友评论