【发布时间】:2016-10-19 18:42:09
【问题描述】:
我有这样的春假服务
@RequestMapping(method = RequestMethod.POST,
path = "/getdata", consumes = {"multipart/form-data"}, produces = MediaType.APPLICATION_JSON)
public
@ResponseBody
Result getBarcode(@RequestParam("text") String sl,
@RequestParam("imageFile") MultipartFile file) {
... some logic
return new Result(text, message, !processingError);
}
当我从 http 表单调用它时,它工作正常并返回 json 文本。但是当我试图从java代码中调用它时
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("text", "123");
map.add("imageFile", new File("...path to file..."));
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.setAccept(MediaType.parseMediaTypes("application/json,text/html,application/xhtml+xml,application/xml"));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(map, headers);
ResponseEntity<BcResult> response = restTemplate.exchange("http://localhost:8080/getdata", HttpMethod.POST, requestEntity, BcResult.class);
然后我收到 400 错误请求错误。无法弄清楚这段代码有什么问题......
【问题讨论】:
-
移除消费multipart/form-data
-
它没有帮助。得到同样的错误
-
你检查过这个解决方案了吗? stackoverflow.com/a/27097798/4418951