帮我封装一个 retrofit ,并写出使用方式,要求使用代码要简洁
时间: 2024-10-26 09:02:43 浏览: 30
Retrofit是一个由Square公司开发的库,用于将RESTful API转换为Java或Kotlin对象。以下是一个简单的Retrofit封装示例,包括创建API客户端、添加ConverterFactory、定义接口以及基本的使用方法:
```java
// 首先导入依赖
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class RetrofitHelper {
private static final String BASE_URL = "https://api.example.com"; // 替换为你需要的API基础地址
private static OkHttpClient client = new OkHttpClient();
private static Retrofit retrofit;
public synchronized static Retrofit getClient() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
// 定义一个接口,比如我们有一个用户服务
public interface UserService {
@GET("users")
Call<List<User>> getUsers();
}
// 使用示例:
public static void main(String[] args) throws IOException {
RetrofitHelper retrofitHelper = RetrofitHelper.getClient();
// 获取UserService实例
UserService userService = retrofitHelper.getUserService();
// 调用API并处理结果
Call<List<User>> call = userService.getUsers();
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
List<User> users = response.body();
if (users != null) {
for (User user : users) {
// 处理返回的数据
}
} else {
Log.e("Retrofit", "No data received");
}
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
Log.e("Retrofit", "Error occurred: ", t);
}
});
}
}
```
在这个例子中,你需要替换`BASE_URL`为你实际的API地址,并根据需要自定义User接口和其对应的实体类(如`@GET("users") Call<List<User>> getUsers()`)。在`main`函数中,通过`getClient`获取到Retrofit实例,然后就可以方便地调用API了。
阅读全文