模板来源 豆包 时间 2026.3.29 19:49
一.引入依赖
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>converter-gson</artifactId>
<version>2.9.0</version>
</dependency>
二.写返回实体类
@Data
@All~
@NO~
public class QuoteResponse {
private String content;
private String author;
}
三.写 Retrofit 配置类
@Configuration
public class RetrofitConfig {
public static final String BASE_URL = "https://api.quotable.io/";
@Bean
public Retrofit retrofit() { // 方法名随便取
// 日志拦截器
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
// 自定义 OkHttp 客户端
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.retryOnConnectionFailure(true)
.connectTimeout(30, TimeUnit.SECONDS)
.build();
// 构建 Retrofit
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
}
}
四.写 API 接口
import retrofit2.Call;
import retrofit2.http.GET;
public interface QuoteApi {
@GET("quotes/random")
Call<QuoteResponse> getRandomQuote();
}
五.编写测试类
import retrofit2.Call;
import retrofit2.Response;
public class ApiTest {
public static void main(String[] args) throws Exception {
// 1. 获取Retrofit实例
Retrofit retrofit = RetrofitConfig.getInstance();
// 2. 创建接口代理对象
QuoteApi quoteApi = retrofit.create(QuoteApi.class);
// 3. 获得请求包裹Call
Call<QuoteResponse> call = quoteApi.getRandomQuote();
// 4. 发送请求,得到完整响应Response
Response<QuoteResponse> response = call.execute();
// 5. 取出响应体(数据对象)
QuoteResponse result = response.body();
// 输出
System.out.println("名言:" + result.getContent());
System.out.println("作者:" + result.getAuthor());
}
}