RestTemplate请求Formdata格式接口与Json格式接口调用

依赖前提

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--nacos服务注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>

调用restTemplate注入

@Autowired
RestTemplate restTemplate;

关键是请求头的类型和调用时的参数类型

请求Formdata格式接口

@GetMapping("/formdata")
public String testRestFormdata(){
String url = "https://xxxxxxx.cn/xxxxx/xxxx";
String studentCode = "2222x55x-1111-1111-0000-xxxxxxxxxxxx@123456";

HttpHeaders headers = new HttpHeaders();
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
//接口参数
map.add("studentCode",studentCode);
//头部类型
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
//构造实体对象
HttpEntity<MultiValueMap<String, Object>> param = new HttpEntity<>(map, headers);
System.out.println("testRest start");
String msg = restTemplate.postForObject(url, param,String.class);
System.out.println(msg);
return "成功";
}

请求Json格式接口

@GetMapping("/json")
public String testRestJson(){
String url = "https://xxxxxxx.cn/xxxxx/xxxx";
ArrayList<StudentQcpj> list = new ArrayList<>();
StudentQcpj studentQcpj = new StudentQcpj("2222x55x-1111-1111-0000-xxxxxxxxxxxx",
"4404000","11","小明","女","123456");
StudentQcpj studentQcpj2 = new StudentQcpj("2222x55x-2222-2222-0000-xxxxxxxxxxxx",
"4404000","22","小红","男","123456");
list.add(studentQcpj);
list.add(studentQcpj2);
HttpHeaders headers = new HttpHeaders();
//头部类型
headers.setContentType(MediaType.valueOf("application/json;UTF-8"));
//构造实体对象
HttpEntity<String> param = new HttpEntity<>(JSON.toJSONString(list), headers);
System.out.println("testRest start");
JSONObject msg = restTemplate.postForObject(url, param, JSONObject.class);
System.out.println(msg);
return "成功";
}