retrift官网
1、是一个基于okhttp的网络请求框架
2、通过注解配置网络请求参数
3、图片链接和图片上传
4、支持同步和异步网络请求
5、支持多种数据的解析,提供对Rxjava的支持
6、可拓展性好,高度封装,简洁易用
1、添加Retrofit库的依赖
2、创建接收服务器返回数据的类
3、创建用于描述网络请求的接口
4、创建 Retrofit 实例
5、创建 网络请求接口实例 并 配置网络请求参数
6、发送网络请求(异步 / 同步)
7、处理数据
参考:https://zhuanlan.zhihu.com/p/141592512?from_voters_page=true
//简单的get请求(没有参数)@GET("trades")Call getItem();
//简单的get请求(URL中带有参数)@GET("News/{userId}")Call getItem(@Path("userId") String userId);
//简单的get请求(URL中带有两个参数)@GET("News/{userId}")Call getItem(@Path("userId") String userId,@Path("type") String type);
//参数在url问号之后@GET("trades")Call getItem(@Query("userId") String userId);
@GET("trades")Call getItem(@QueryMap Map map);
@GET("trades")Call getItem(@Query("userId") String userId,@QueryMap Map map);
//需要补全URL,post的数据只有一条reason@FormUrlEncoded@POST("trades/{userId}")Call postResult(@Path("userId") String userId,@Field("reason") String reason;
//需要补全URL,问号后需要加token,post的数据只有一条reason@FormUrlEncoded@POST("trades/{userId}")Call postResult(@Path("userId") String userId,@Query("token") String token,@Field("reason") String reason;
//post一个对象@POST("trades/{userId}")Call postResult(@Path("userId") String userId,@Query("token") String token,@Body TradesBean bean;
//用不同注解post一个实体@POST("trades/{userId}")Call postResult(@Part("entity") TradesBean bean;
//put一个实体@PUT("trade/carInfo/{pid}")Call putInfo(@Path("pid") Int pid,@Body CarInfoBean carInfoBean;)
//补全url@DELETE("trades/{userId}")Call deleteInfo(@Path("userId") String userId;
//补全url并且后面还token@DELETE("trades/{userId}")Call deleteInfo(@Path("userId") String userId,@Query("token") String token;)