springboot URL接口调用
时间: 2025-05-18 11:41:48 浏览: 26
### Spring Boot 调用外部 URL 接口的方法
#### 使用 RestTemplate 进行 HTTP 请求
`RestTemplate` 是一种同步客户端,用于执行 HTTP 请求。为了使用 `RestTemplate` 发起请求,可以创建一个简单的服务类来封装对外部 API 的调用逻辑。
```java
@Service
public class ExternalApiService {
private final RestTemplate restTemplate;
public ExternalApiService(RestTemplateBuilder restTemplateBuilder) {
this.restTemplate = restTemplateBuilder.build();
}
public String callExternalAPI() {
String url = "https://api.example.com/data";
ResponseEntity<String> responseEntity =
restTemplate.getForEntity(url, String.class);
return responseEntity.getBody();
}
}
```
此代码展示了如何利用 `RestTemplate` 向指定的 URL 发送 GET 请求并获取响应体作为字符串返回[^1]。
对于更复杂的场景,比如 POST 请求,则可以通过构建实体对象传递参数:
```java
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
Map<String, Object> map = new HashMap<>();
map.put("key", "value");
HttpEntity<Map<String, Object>> entity = new HttpEntity<>(map, headers);
ResponseEntity<String> exchangeResult = restTemplate.exchange(
"http://example.org/api",
HttpMethod.POST,
entity,
String.class
);
```
这段代码说明了怎样设置自定义头部信息以及发送带有 JSON 数据体的 POST 请求给目标服务器。
#### 配置 Feign Client 实现声明式的 REST 客户端
如果希望简化远程服务调用过程中的模板代码编写工作量,那么可以选择基于契约编程风格的 Feign 来代替传统的 `RestTemplate` 方式。首先,在项目的主应用程序入口处加上注解 `@EnableFeignClients` 以便开启对 Feign 功能的支持[^2][^3]。
接着定义具体的 FeignClient 接口如下所示:
```java
@FeignClient(name="externalApiClient", url="https://api.external-service.com")
public interface ExternalApiClient {
@GetMapping("/resource/{id}")
Resource getResourceById(@PathVariable Long id);
@PostMapping(value="/resources", consumes=MediaType.APPLICATION_JSON_VALUE)
void createResource(@RequestBody Resource resource);
}
```
上述例子中展示了一个名为 `externalApiClient` 的 Feign 客户端接口,其中包含了两个方法分别对应于不同的 HTTP 方法和路径模式。
最后可以在任何需要的地方自动装配这个接口类型的 Bean 并直接调用其上的方法即可实现向对应的 URL 地址发起相应类型的 HTTP 请求操作。
阅读全文
相关推荐




















