restTemplate发送post请求提交formdata
public ResponseEntity download(@RequestParam MultipartFile file, @RequestParam Integer type) {
File fileTemp = null;
String url = http://127.0.0.1/api
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.set("Authorization","Bearer " + getToken());
fileTemp = File.createTempFile("cw-", file.getOriginalFilename());
file.transferTo(fileTemp);
MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
multiValueMap.add("type", type);
multiValueMap.add("multipartFile", new FileSystemResource(fileTemp));
HttpEntity<MultiValueMap<String, Object>> params = new HttpEntity<>(multiValueMap, headers);
JSONObject response = restTemplate.postForObject(url, params, JSONObject.class);
Integer code = response.getInteger("code");
String msg = response.getString("msg");
JSONObject data = null;
if (code == 200) {
data = response.getJSONObject("data");
}
Map map = new HashMap();
map.put("data",data);
map.put("code",code);
map.put("msg",msg);
return new ResponseEntity<>(map, HttpStatus.OK);
} catch (Exception e){
e.printStackTrace();
} finally {
if(fileTemp != null && fileTemp.exists()) {
fileTemp.delete();
}
}
Map map = new HashMap();
map.put("code",500);
map.put("token",null);
map.put("msg","导入失败");
return new ResponseEntity<>(map, HttpStatus.INTERNAL_SERVER_ERROR);
}
核心代码已标红

浙公网安备 33010602011771号