android学习杂记.5

简单的rxjava+retrofit2的例子


配置retrofit

public class RetrofitClient {
    private  static RetrofitService retrofitService;
    public  static RetrofitService getClient(){
        if(retrofitService==null){
            OkHttpClient.Builder builder = new OkHttpClient.Builder();
            builder.connectTimeout(5, TimeUnit.SECONDS);
            builder.readTimeout(5, TimeUnit.SECONDS);

//            OkHttpClient okHttpClient=new OkHttpClient();
            Retrofit client=new Retrofit.Builder()
                    .baseUrl(Urls.BASE_URL)
                    .client(builder.build())
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                    .build();

            retrofitService=client.create(RetrofitService.class);

        }
        return retrofitService;
    }
}

访问的接口地址

public interface RetrofitService {


  @GET("index.php/api/event_cal?id=1")
  Call<MeetingClass> getMeetingLists();

  @POST("/MyApp/{link}")
  Observable<String> login(@Path("link")String link, @Query("username")String username, @Query("psw")String psw);

   @GET("/MyApp/{link}")
  Observable<List<Users>> getAllUsers(@Path("link") String link);

   @GET("/MyApp/{link}")
  Observable<List<DisplayGoods>> getDisplayGoods(@Path("link") String link);
}

public void login(final String username, String psw, SharedPreferences sharedPreferences) {
    final SharedPreferences.Editor editor=sharedPreferences.edit();
    RetrofitService retrofitService= RetrofitClient.getClient();
    Observable<String> observable = retrofitService.login("login",username.toString(),psw);
    observable.subscribeOn(Schedulers.io()).unsubscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Subscriber<String>() {
                @Override
                public void onCompleted() {

                }

                @Override
                public void onError(Throwable e) {

                    iLogin.isLogin(false);
                }

                @Override
                public void onNext(String s) {
                    if("true".equals(s)) {
                        iLogin.isLogin(true);
                        editor.putString("userName",username);
                        editor.commit();
                    }
                    else
                        iLogin.isLogin(false);
                }
            });
}

要导入的包

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.6.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex:rxjava:1.2.6'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

下面是没加rxjava的时候


配置retrofit

public class RetrofitExpClient {
    private  static RetroExpService retrofitService;
    public  static RetroExpService getClient(){
        if(retrofitService==null){

            OkHttpClient okHttpClient=new OkHttpClient();
            Retrofit client=new Retrofit.Builder()
                    .baseUrl(ConstantData.BASE_URL)
                    .client(okHttpClient)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            retrofitService=client.create(RetroExpService.class);

        }
        return retrofitService;
    }
}

接口地址

public interface RetroExpService {
  //获取用户电话和email;
  @GET("/hpproject/{link}")
  Call<User> getUserInfo(@Path("link") String link, @Query("id") int id);
    //获取所有歌曲
    @GET("/hpproject/{link}")
    Call<List<Music>> getMusic(@Path("link") String link);

   //获取所有帖子
    @GET("/hpproject/{link}")
    Call<List<Post>> getPost(@Path("link") String link, @Query("position") String position);
  //上传帖子//回帖
    @Multipart
    @POST("/hpproject/{link}")
    Call<String> upFile(@Path("link") String link, @Part("photo") RequestBody photo, @QueryMap Map<String,String> map);

}


方法

public void getPostTopPic(){
    RetroExpService retroExpService = RetrofitExpClient.getClient();

    Call<List<String>> call = retroExpService.getPostTopPic("getPostTopPic");
    call.enqueue(new Callback<List<String>>() {
        @Override
        public void onResponse(Call<List<String>> call, Response<List<String>> response) {
            if (response.isSuccessful()) {
              
            }
        }


        @Override
        public void onFailure(Call<List<String>> call, Throwable t) {

        }
    });
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值