1.前言
由于项目需要与外部接口对接,所以需要使用到restTemplate来发送请求,而存在某一个接口需要接受文件类型数据,这种接口参数一般都是通过form-data来接受的,实际上并不难,但是我在写的时候一直报错,最后发现是项目中配置好的restTemplate中发送post请求会将参数打印出来,而参数中包含文件,使用的是JSONObject.toJSONString(),故一直报错,于是打算写此文章记录一下
2.代码
给出了文件上传部分的关键代码,其余逻辑自行补充
public void test(MultipartFile file) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.set("file", file.getResouce());
HttpEntity<Object> entity = new HttpEntity<>(map, headers);
String result = restTemplate.postForObject("url", entity,String.class);
// 解析响应
JSONObject.parseObject(result, XXX.class);
}