基于RestTemplate的远程服务调用服务端与客户端代码
时间: 2024-10-18 14:15:30 浏览: 21
RestTemplate实现服务间调用demo案例
基于Spring框架的`RestTemplate`是一个用于访问RESTful Web服务的简单而强大的工具。它允许你在Java应用程序中发送HTTP请求(如GET、POST、PUT等),并处理响应。以下是服务端和客户端的基本代码示例:
**服务端(服务器端提供API)**:
```java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/api/data")
public String getData() {
// 这里你可以执行数据库查询或其他业务逻辑
return "{'name': 'John', 'age': 30}";
}
}
```
在这个例子中,`MyController`是RESTful API的控制器,`/api/data`是一个GET请求的URL,返回的数据是一个JSON对象。
**客户端(调用服务端API)**:
```java
import org.springframework.http.client.RestTemplate;
public class ClientService {
private RestTemplate restTemplate = new RestTemplate();
public String fetchData() {
// 使用RestTemplate发送GET请求
String url = "http://localhost:8080/api/data";
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
// 检查状态码,处理结果
if (response.getStatusCode().is2xxSuccessful()) {
return response.getBody();
} else {
throw new RuntimeException("Failed to fetch data", response.getStatusCode());
}
}
}
```
在客户端代码中,我们创建了一个`RestTemplate`实例,然后通过`getForEntity`方法发起HTTP GET请求到指定的URL,并获取响应体。如果请求成功,我们会得到数据;否则,会抛出异常。
阅读全文