RxJava+Retrofit登录案列

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

1.项目很简单就一个接口,一个Bean类和一个activity。
RxJava+Retrofit登录案列_第1张图片

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 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 observable = loginService.login(etUsername.getText().toString()trim(),etPassword.getText().toString().trim());

 //完成、错误、下一步 三个方法的回调       observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber() {
                    @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.效果
RxJava+Retrofit登录案列_第2张图片

你可能感兴趣的:(android,RxJava)