<!-- 引入retrofit依赖 -->
<dependency>
<groupId>com.github.lianjiatech</groupId>
<artifactId>retrofit-spring-boot-starter</artifactId>
<version>2.3.5</version>
</dependency>
<!-- 引入retrofit依赖 没有此包 retrofit starter 会启动失败 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.14.9</version>
</dependency>
## Retrofit
retrofit.global-log.enable=true
retrofit.global-log.log-level=info
其作用就是显示日志,正式发版前可以去掉
@RetrofitScan("cn.xxx.xxx")
可以传入数组,指定多个包位置
import com.github.lianjiatech.retrofit.spring.boot.core.RetrofitClient;
import org.springframework.stereotype.Component;
import retrofit2.http.GET;
/**
* Retrofit 配置完成测试接口
*/
@Component
@RetrofitClient(baseUrl = "http://127.0.0.1:8088/xxx/")
public interface TestApi {
@GET("testApi/getNormal")
Result getNormal();
}
Result result = testApi.getNormal();
定义接口方法请求 所使用的 Method 常用的也就是如下四种 符合 RestFul Style
@GET Get方式 获取 read
@POST Post方式 添加 create
@PUT Put 方式 更新 update
@DELETE Delete 方式 删除 delete
通常用来定义参数的类型
@Query 主要用于Get请求数据,用于拼接在拼接在Url路径后面的查询参数,一个@Query相当于拼接一个参数,多个参数中间用,隔开。
@QueryMap 可以传入一个 HashMap 主要的效果等同于多个@Query参数拼接,主要也用于Get请求网络数据。
@Field 类似于@Query,主要不同的是@Field主要用于Post请求数据。
@FieldMap 类似于@QueryMap。
上面四种的主要区别在于使用的请求 Query类的键值是拼接在URL后面 Field类的键值是存放在请求体中
@FormUrlEncoded 为POST方法指定编码 @Field parameters can only be used with form encoding.
@Path 主要用于Get请求,用于替换Url路径中的变量字符。
// 使用样例
@GET(“users/{user}/question”)
Call<List> getData(@Path(“user”) String user);}
@Url 动态URL请求(该注解会将方法的全部URL替换掉)