java HTTP协议传数据
本文参考链接:https://blog.csdn.net/baidu_41885330/article/details/80824041
要实现一个系统调用另一个系统的接口,并获取该接口的数据。
1. 首先为两个项目分配不同的端口号
在application.properties里修改项目端口号
这里我将被调用接口的系统的端口号设为8081(叫做分系统),调用接口的系统的端口号设为8080(叫做主系统)。
这样就可以通过不同的端口号同时访问两个系统。
2.为分系统设置http协议
因为主系统需要调用分系统的接口,所以要为分系统设置http协议。
设置步骤如下:
3.在分系统中写接口
我写了一个查询分系统数据库的接口/data/select,这里不做赘述。
主系统可以通过 http://localhost:8081/data/select
访问这个接口。
4.为主系统部署http
在主系统的pom.xm里添加以下代码:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
5…在主系统中写调用接口的代码
这里返回的值得list
- controller层代码
public List<Map<String, Object>> transShip(){
String selectURL = "http://localhost:8081/data/select";
HttpMethod method = HttpMethod.GET;
List<Map<String, Object>> list = new ArrayList<>();
list = this.transService.client(selectURL,method,list);
- service层代码
List<Map<String, Object>> client(String url, HttpMethod method, List<Map<String, Object>> params);
- serviceimpl代码
public List<Map<String, Object>> client(String url, HttpMethod method, List<Map<String, Object>> params){
RestTemplate template = new RestTemplate();
ResponseEntity<List> response1 = template.getForEntity(url,List.class);
return response1.getBody();
}