在 Java 中,“调用 API 接口”通常指的是调用远程 HTTP 接口(RESTful / WebService 等)。下面从常见方式 + 示例给你一个完整说明。
| 方式 | 说明 | 推荐使用场景 |
|---|---|---|
HttpURLConnection |
JDK 原生 | 不依赖第三方 |
Apache HttpClient |
成熟稳定 | 企业项目 |
OkHttp |
轻量高性能 | 移动 / 微服务 |
RestTemplate |
Spring 提供 | Spring 项目 |
WebClient |
Spring WebFlux | 响应式编程 |
Feign |
声明式调用 | 微服务 |
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ApiTest {
public static void main(String[] args) throws Exception {
URL url = new URL("https://api.example.com/user/1");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader reader =
new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder result = new StringBuilder();
while ((line = reader.readLine()) != null) {
result.append(line);
}
reader.close();
System.out.println(result);
}
}
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
CloseableHttpClient client = HttpClients.createDefault();
HttpGet get = new HttpGet("https://api.example.com/user/1");
CloseableHttpResponse response = client.execute(get);
String result = EntityUtils.toString(response.getEntity());
System.out.println(result);
<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/user/1")
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
@RestController
public class TestController {
@Autowired
RestTemplate restTemplate;
@GetMapping("/test")
public String test() {
return restTemplate.getForObject(
"https://api.example.com/user/1", String.class);
}
}
RequestBody body = RequestBody.create(
MediaType.parse("application/json"),
"{\"name\":\"tom\"}"
);
Request request = new Request.Builder()
.url("https://api.example.com/user")
.post(body)
.addHeader("Authorization", "Bearer token")
.build();
✅ 设置超时
✅ 处理 HTTPS 证书
✅ JSON 解析(Jackson / Gson)
✅ 异常重试
✅ 接口鉴权(Token / Sign)
你可以告诉我:
我可以直接给你可运行代码模板。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。