RxJava2+Retrofit2

学习笔记

merge合并两个Observable请求

   Observable<AESMBO> observable = api.getAES();
        String xorValue = "9f48c6ce-07e8-4521-a840-e256f03c3ceb";
        String xorKey = "W0CG2fq4jGo3n6EX";
        LoginMBO loginMBO = new LoginMBO();
            try {
                loginMBO.setUsername(EncryptAes.encrypt(loginView.getUserName(), xorValue));
                loginMBO.setPassword(EncryptAes.encrypt(loginView.getPassord(), xorValue));
            } catch (Exception e) {
                e.printStackTrace();
            }
            loginMBO.setXorKey(xorKey);
            String str = JsonUtil.bean2json(loginMBO);
            Observable<LoginMBO> loginObservable = api.login(str);

        Observable.merge(observable,loginObservable).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<BaseMBO>() {
            @Override
            public void onSubscribe(@NonNull Disposable d) {

            }
            @Override
            public void onNext(@NonNull BaseMBO baseMBO) {
                if(baseMBO instanceof  AESMBO){
                    Log.e("第一个返回",((AESMBO) baseMBO).getXorKey()+"=="+((AESMBO) baseMBO).getXorValue());

                }else if(baseMBO instanceof LoginMBO ){
                    Log.e("第二个返回",((LoginMBO)baseMBO).getRsCode()+"=="+((LoginMBO)baseMBO).getTicket());
                }
            }
            @Override
            public void onError(@NonNull Throwable e) {

            }
            @Override
            public void onComplete() {

            }
        });

Retrofit

API:

@FormUrlEncoded表单域@Field修饰上传字段
@FormUrlEncoded
    @POST("/basic/login/login/loginCs.json")
    Observable<LoginMBO> login(@Field("mobileParam")String mobileParam);
@Multipart用来修饰文件上传 @Part修饰每一个元素
@Headers("Cache-Control: max-age=640000")
@GET("/widget/list")
List<Widget> widgetList();
@Path路径参数
@GET("{username}")    Call<User> getUser(@Path("username") String username);
@Query参数
@POST("users") Call<List<User>> getUsersBySort(@Query("sort") String sort);
@Head注解请求头信息
@Headers("Cache-Control: max-age=640000")@GET("/widget/list")List<Widget> widgetList();

retrofit中添加缓存也就是在okhttp中添加缓存



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值