rxjava+retrofit简单使用
依赖
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.x.x'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
// Okhttp库
implementation 'com.squareup.okhttp3:okhttp:3.1.2'
// Retrofit库
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
public interface TestApi{
@GET("/") //使用/或者. 来代替无接口
Observable<ResponseBody> get();
}
调用接口
Gson gson = new GsonBuilder().setLenient().create();
Retrofit retrofit=new Retrofit.Builder()
.baseUrl("https://www.tianqiapi.com/")
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
TestApi testApi = retrofit.create(TestApi.class);
testApi.get()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
Log.i("zqq","onSubscribe");
}
@Override
public void onNext(ResponseBody responseBody) {
Log.i("zqq","responseBody>>"+responseBody.toString());
Reader reader = responseBody.charStream();
BufferedReader bufferedReader=new BufferedReader(reader);
StringBuffer stringBuffer=new StringBuffer();
String line="";
try {
while ((line = bufferedReader.readLine())!=null){
stringBuffer.append(line);
stringBuffer.append("\r\n");
}
}catch (Exception e){
}
Log.i("zqq","responseBody>>"+stringBuffer.toString());
}
@Override
public void onError(Throwable e) {
Log.i("zqq","onError");
}
@Override
public void onComplete() {
Log.i("zqq","onComplete");
}
});
请求结果: