You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.1.4 下API调用替代方案咨询

Spring Boot 3.1.4 调用外部API的可选方案

1. Apache HttpClient

老牌同步HTTP客户端,稳定性强、文档资源充足,适合不需要异步能力的场景。可以直接引入依赖后编写同步调用逻辑。

  • Maven依赖:
<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.2.3</version>
</dependency>
  • 基础调用示例:
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet request = new HttpGet("https://api.example.com/data");
try (CloseableHttpResponse response = httpClient.execute(request)) {
    String responseBody = EntityUtils.toString(response.getEntity());
    // 处理响应内容
} catch (IOException e) {
    e.printStackTrace();
}

2. OkHttp

Square出品的高效HTTP客户端,同时支持同步、异步调用,API简洁易上手,性能表现优异。

  • Maven依赖:
<dependency>
    <groupId>com.squareup.okhttp3</groupId>
    <artifactId>okhttp</artifactId>
    <version>4.11.0</version>
</dependency>
  • 同步调用示例:
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
        .url("https://api.example.com/data")
        .build();
try (Response response = client.newCall(request).execute()) {
    String responseBody = response.body().string();
    // 处理响应内容
} catch (IOException e) {
    e.printStackTrace();
}

3. 原生Java HttpClient(Java 11+)

JDK自带的HTTP客户端,无需引入第三方依赖,支持同步、异步调用。Spring Boot 3.1.4基于Java 17,完全兼容该特性,适合不想额外增加依赖包的场景。

  • 同步调用示例:
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("https://api.example.com/data"))
        .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String responseBody = response.body();
// 处理响应内容

4. Retrofit

基于OkHttp封装的声明式REST客户端,通过注解定义API接口,自动生成调用实现,生态成熟、示例资源丰富,类似Feign但学习成本更低。

  • Maven依赖:
<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>
  • 调用示例:
// 定义API接口
public interface ApiService {
    @GET("data")
    Call<DataResponse> getData();
}

// 创建实例并发起请求
Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("https://api.example.com/")
        .addConverterFactory(GsonConverterFactory.create())
        .build();
ApiService service = retrofit.create(ApiService.class);
Call<DataResponse> call = service.getData();
Response<DataResponse> response = call.execute();
DataResponse data = response.body();

方案选择参考

  • 无额外依赖需求:选原生Java HttpClient
  • 追求高性能与简洁API:选OkHttp
  • 偏好声明式调用风格:选Retrofit
  • 传统同步业务场景:选Apache HttpClient

内容的提问来源于stack exchange,提问作者nezuko-chan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:28:22