Android-网络请求库Retrofit的使用
2024-04-09 16:15:32  阅读数 3833
图片来源网络,入侵必删

在日常的Android项目开发或者维护,我们都会使用或者遇到Retrofit网络请求库。这篇博客分享我了解的Retrofit相关的知识,希望对开文章的小伙伴有所帮助。

Retrofit

适用Android网络请求库。

Retrofit导入项目

implementation('com.squareup.retrofit2:retrofit:2.9.0')

截止我发布博客,开源库版本是2.9.0最新的版本请查看开源库的wiki

一般情况下我都会加入解析相关的开源库,我个人比较喜欢Gson解析库:

implementation 'com.squareup.retrofit2:converter-gson:2.4.0'

Retrofit简单使用

我举得例子都是来源开源库的文档。
1、创建本地的接口文件:

public interface GitHubService {
  @GET("users/{user}/repos")
  Call<List<Repo>> listRepos(@Path("user") String user);
}

2、创建Retrofit请求基础配置:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.github.com/")
    .build();
GitHubService service = retrofit.create(GitHubService.class);

3、每个Call创建的GitHubService都可以向服务器发出同步或异步 HTTP 请求:

Call<List<Repo>> repos = service.listRepos("octocat");

Get请求的注解

@GET("users/list")

在链接中指定参数:

@GET("users/list?sort=desc")

动态替换链接的参数,比如是id:

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId);

Post请求的注解

@POST("users/new")
Call<User> createUser(@Body User user);