zoukankan      html  css  js  c++  java
  • RxJava Rxandroid retrofit

    其实Retrofit会了。集合RxJava,RxAndroid 就很简单了。
    只需要改几个地方。
    1。接口里面返回的对象不再是 call,而是Observable

    public interface ApiService {
      /*  @GET("service/getIpInfo.php")
        Call<GetIpInfoResponse> getIpInfo(@Query("ip") String ip);*/
    
        @GET("service/getIpInfo.php")
        Observable<GetIpInfoResponse> getIpInfo(@Query("ip") String ip);
    }

    2.使用的时候注册 一个监听器 addCallAdapterFactory

    Retrofit retrofit = new Retrofit.Builder()
                            .baseUrl(ENDPOINT)
                            .addConverterFactory(GsonConverterFactory.create())
                            .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                            .build();

    3.使用 得到的结果处理

     ApiService apiService = retrofit.create(ApiService.class);
                    apiService.getIpInfo("63.223.108.42")
                            .subscribeOn(Schedulers.io())
                            .observeOn(AndroidSchedulers.mainThread())
                            .subscribe(new Subscriber<GetIpInfoResponse>() {
                                @Override
                                public void onCompleted() {
                                    mProgressBar.setVisibility(View.GONE);
                                }
    
                                @Override
                                public void onError(Throwable e) {
                                    mProgressBar.setVisibility(View.GONE);
                                    mTvContent.setText(e.getMessage());
                                }
    
                                @Override
                                public void onNext(GetIpInfoResponse getIpInfoResponse) {
                                    mTvContent.setText(getIpInfoResponse.data.country);
                                }
                            });

    真的,我试过了。RxJava 比纯retrofit快很多。真的是,同样的网络请求,感觉倒很快,有的很垃圾。

  • 相关阅读:
    js正则 转载
    asp.net中打开新窗口的多种方法(转载)
    ajax有两种提交数据的方式,分别为get和post(转)
    DropDownList 绑定(转载)
    CentOS网络配置
    Java内存区域-- 运行时数据区域
    Spring Ioc--Bean装配
    Spring--Spring容器
    java正则表达式 --简单认识
    Leetcode 402:移除K个数字
  • 原文地址:https://www.cnblogs.com/caoxinyu/p/6647876.html
Copyright © 2011-2022 走看看