Android用okhttp+retrofit+rxjava的例子
时间: 2023-10-04 11:03:59 浏览: 131
Android 封装Okhttp+Retrofit+RxJava,外加拦截器实例
好的,以下是一个使用 OkHttp、Retrofit 和 RxJava 的简单 Android 示例。
首先,你需要在你的 build.gradle 文件中添加以下依赖:
```
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
}
```
这样就可以使用 OkHttp、Retrofit 和 RxJava 的类和方法了。
接下来,你可以在你的代码中定义一个 Retrofit 接口:
```
public interface ApiService {
@GET("users/{username}")
Observable<User> getUser(@Path("username") String username);
}
```
在这个接口中,我们定义了一个 GET 请求,用于获取一个用户的信息。该请求的 URL 是 "https://api.github.com/users/{username}",其中 {username} 参数将会被替换为实际的用户名。接口返回的数据类型是 User,这是一个简单的类,如下所示:
```
public class User {
public final String login;
public final int id;
public final String avatarUrl;
public final String htmlUrl;
public User(String login, int id, String avatarUrl, String htmlUrl) {
this.login = login;
this.id = id;
this.avatarUrl = avatarUrl;
this.htmlUrl = htmlUrl;
}
}
```
现在,你可以在你的 Activity 或 Fragment 中调用这个接口:
```
ApiService apiService = RetrofitClient.getInstance().create(ApiService.class);
apiService.getUser("octocat")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(user -> {
// 在这里处理获取到的用户信息
}, throwable -> {
// 在这里处理请求失败的情况
});
```
该示例将会获取一个名为 "octocat" 的用户的信息,并在获取到数据后将其打印出来。需要注意的是,这个网络请求是在一个新的线程中执行的,以避免阻塞主线程。获取到数据后,我们转换到主线程中,并在观察者的 onNext 回调中处理数据。如果请求失败,则在观察者的 onError 回调中处理错误情况。
希望这个简单的示例可以帮助你理解如何在 Android 中使用 OkHttp、Retrofit 和 RxJava。
阅读全文