在Android中使用Retrofit 2.0进行嵌套API调用时,可以使用以下步骤:
例如,假设有两个接口UserApi
和PostApi
,可以定义如下:
public interface UserApi {
@GET("users/{user_id}")
Call getUser(@Path("user_id") int userId);
}
public interface PostApi {
@GET("users/{user_id}/posts")
Call> getPosts(@Path("user_id") int userId);
}
例如:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com/")
.addConverterFactory(GsonConverterFactory.create())
.build();
UserApi userApi = retrofit.create(UserApi.class);
PostApi postApi = retrofit.create(PostApi.class);
例如,在UserApi
的getUser
方法中,可以使用enqueue
方法异步地获取用户信息,然后使用回调函数onResponse
获取返回结果。
在onResponse
中,可以通过调用getPost
方法来异步获取用户的所有帖子。这将嵌套调用PostApi
中的方法。
userApi.getUser(userId).enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
User user = response.body();
postApi.getPosts(user.getId()).enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
List posts = response.body();
// 处理帖子
}
@Override
public void onFailure(Call> call, Throwable t) {
// 处理错误
}
});
}
@Override
public void onFailure(Call call, Throwable t) {
// 处理错误
}
});
onResponse
方法中,可以处理成功的结果。在onFailure
方法中,可以处理失败的结果。