RxJava+Retrofit登录案列

最近在自己的项目中使用到了现在比较火的RxJava和Retrofit框架,关于RxJava和Retrofit的介绍就不多说了,下面开始编写代码。

1.项目很简单就一个接口,一个Bean类和一个activity。
这里写图片描述

2.添加所需要的依赖

  compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
  compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
  compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
  compile 'io.reactivex:rxjava:1.1.0'
  compile 'io.reactivex:rxandroid:1.1.0'

3.编写登录接口

public interface LoginService {

    /**
     * @param username
     * @param password
     * @return
     */
    @GET("login")
    Call<Users> login(@Query("username") String username, @Query("password") String password);


}

4.编写核心代码

MainActivity.java
private String loginUrl = "http://192.168.16.121:8080/NewsClient/user/";

 private void login(){

  Retrofit retrofit = new Retrofit.Builder()
                                .baseUrl(loginUrl)
  //将JSON对象转为实体类                              .addConverterFactory(GsonConverterFactory.create())
  //添加RxJava与Retrofit适配器工厂                              .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                                .build();

        LoginService loginService = retrofit.create(LoginService.class);
        Observable<Users> observable = loginService.login(etUsername.getText().toString()trim(),etPassword.getText().toString().trim());

 //完成、错误、下一步 三个方法的回调       observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Users>() {
                    @Override
                    public void onCompleted() {

                        Log.i("MAKE","onCompleted...");

                    }

                    @Override
                    public void onError(Throwable e) {
                        e.printStackTrace();
                        Log.e("MAKE","onError...");
                    }

                    @Override
                    public void onNext(Users users) {

                        Log.i("MAKE"," users == "+users.toString());
                        if(users!=null){
                            Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_LONG).show();
                        }

                    }
                });


    }

5.效果
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值