rxjava 五、简单的网络请求使用
程序员文章站
2022-04-02 18:09:00
...
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");
}
});
请求结果:
推荐阅读
-
Android Retrofit和Rxjava的网络请求
-
RxJava+Retrofit实现网络请求封装的方法
-
iOS开发中使用NSURLConnection类处理网络请求的方法
-
Flutter网络请求的3种简单实现方法
-
python使用socket进行简单网络连接的方法
-
.Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器
-
Android使用 Coroutine + Retrofit打造简单的HTTP请求库
-
分析一下iOS网络请求的使用
-
RxJava操作符的简单使用
-
深度学习 从零开始 —— 神经网络数学基础(一),学习Keras库的使用,神经网络简单流程,MNIST数据集使用