写点什么

JAVA 小抄 -001-Retrofit 初级使用

用户头像
NoNoGirl
关注
发布于: 2020 年 05 月 08 日
JAVA小抄-001-Retrofit初级使用

业务代码中需要用到这个,记录一下使用方式:

定义返回对象 Repo:

public class Repo {
String statusCode = "200";
String message;
// setter and getter 也可以使用Lambok
public boolean isSuccess() { return "200".equals(statusCode); }
@Override public String toString() { return JsonUtil.toJsonString(this); }

}
复制代码


定义接口配置网络请求:GitHubService


public interface GitHubService {
/*** 各种类型的用法**/ // https://api.github.com/users/{user}/repos @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user);
// https://api.github.com/users/list || https://api.github.com/users/list?sort=desc //@GET("users/list?sort=desc") @GET("users/list") Call<List<User>> list();
// https://api.github.com/group/{id}/users @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId);
// https://api.github.com/group/{id}/users?sort=desc @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);
// https://api.github.com/group/{id}/users?key=value @GET("group/{id}/users") Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
// https://api.github.com/ POST user @POST("users/new") Call<User> createUser(@Body User user);
@FormUrlEncoded @POST("user/edit") Call<User> updateUser(@Field("first_name") String first, @Field("last_name") String last);
@Multipart @PUT("user/photo") Call<User> updateUser(@Part("photo") RequestBody photo, @Part("description") RequestBody description);
// headers 方式 @Headers("Cache-Control: max-age=640000") @GET("widget/list") Call<List<Widget>> widgetList();
@Headers({ "Accept: application/vnd.github.v3.full+json", "User-Agent: Retrofit-Sample-App" }) @GET("users/{username}") Call<User> getUser(@Path("username") String username);
@GET("user") Call<User> getUser(@Header("Authorization") String authorization);
@GET("user") Call<User> getUser(@HeaderMap Map<String, String> headers);}
复制代码


使用方法:

   public void listRepos(String user) {        Retrofit retrofit = new Retrofit.Builder()                .baseUrl("https://api.github.com/")                .addConverterFactory(GsonConverterFactory.create())                .build();        GitHubService service = retrofit.create(GitHubService.class);        Call<List<Repo>> repos = service.listRepos("octocat");        try {            List<Repo> reposList = repos.execute().body();            reposList.forEach(System.out::println);        }catch (IOException e){            e.printStackTrace();        }    }
public static void main(String[] args) { RetrofitTrial retrofitTrial = new RetrofitTrial(); retrofitTrial.listRepos(""); }
复制代码


官方地址 : https://square.github.io/retrofit/


发布于: 2020 年 05 月 08 日阅读数: 59
用户头像

NoNoGirl

关注

还未添加个人签名 2018.09.17 加入

还未添加个人简介

评论

发布
暂无评论
JAVA小抄-001-Retrofit初级使用