最近老大搞Retrofit和Rxjava,为了跟紧老大的步伐,要学习了一下,这是我刚开始学习的内容和大家分享一下.
环境配置
首先在 Gradle 文件中进行配置,添加下列语句即可
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
compile 'io.reactivex:rxjava:1.0.14'
compile 'io.reactivex:rxandroid:1.0.1'
举个栗子
有一个登录接口,定义如下
URL | 请求方式 | 传入参数 | 返回参数 |
---|---|---|---|
http://www.owen.com/api/login | GET | mobile(手机号)和 smsvcode(验证码) | nickName(昵称) |
那么如何访问接口呢?
首先定义一下接口返回的 Bean
public class User {
private String nickName;
public void setNickName(String name) {
this.nickName = name;
}
public void getNickName(String name) {
return this.nickName;
}
}
定义 Service 接口
pubic interface LoginService {
@GET("login")
Observable<User> login(@Path("mobile") String mobile, @Path("smsvcode") String smsvcode);
}
接下来就可以使用接口了。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://www.foo.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
LoginService loginService = retrofit.create(LoginService .class);
loginService.login("1234567890123", "789"))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<User>() {
@Override
public void onCompleted() {
// 这里好像没啥用处
}
@Override
public void onError(Throwable e) {
// 在这里处理异常
}
@Override
public void onNext(User user) {
// 在这里处理接口返回的数据
}
});
以上就是一个超级简单的 demo,对简单的东西来说,够用了。可以拿来作为模板代码。至于高级功能,就需要近一步深入学习。我也在学,共同进步吧。