java - 如何使用 RestTemplate 在自定义对象中发送 MultiPart
问题描述
我有一个自定义对象 BasicDetailDomain,它的属性包括 Multipart。要求是使用 RestTemplate 调用 API。
@PostMapping(value = "/postbasicdetails")
public ResponseEntity<ActionResponse<?>> postBasicDetails(BasicDetailDomain details) throws
IOException{
//logic here
}
Here is my Code
BasicDetailDomain basicDetailDomain = createBasicdetails();
HttpEntity<BasicDetailDomain> entity = new HttpEntity(basicDetailDomain, headers);
ResponseEntity<Object> response =
restTemplate.exchange(formFullURLWithPort(port,"/rpa/postbasicdetails"),HttpMethod.POST, entity,
Object.class);
assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatusCode().value());
//createBasicdetails
private BasicDetailDomain createBasicdetails()
{
MultipartFile multipartFile = null;
try {
multipartFile = new MockMultipartFile("payterm.xlsx", new FileInputStream(new
File("src/test/resources/payterm.xlsx")));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
BasicDetailDomain basicDetailDomain = new BasicDetailDomain();
basicDetailDomain.setClientID("oooo");
basicDetailDomain.setEnvironment("UAT");
basicDetailDomain.setPassword("kkk");
basicDetailDomain.setUsername("mmmm");
basicDetailDomain.setUseCaseID("uuuu");
basicDetailDomain.setFile(multipartFile);
return basicDetailDomain;
}
在控制器端,每个属性都为空,当我在 Queryparm 中传递属性时,它会反映在控制器上。无法理解发生了什么。
解决方案
推荐阅读
- android-studio - Android Studio dart analysis_options.yaml 文件
- html - 使用 CSS Grid 或 Flexbox 居中环绕固定宽度的列
- regex - 如何删除字符串第一次出现之前和最后一次出现之后的所有行?
- java - 尝试捕获异常助手
- mysql - 检查与您的 MariaDB 服务器版本相对应的手册,以获取在第 1 行 sql 的 '26 ( cid int(11) not null, ' 附近使用的正确语法
- browser - 单连接浏览器
- python - 我在向我的代码添加暂停功能时遇到问题,我可以寻求帮助吗?
- react-native - 如何与烧瓶服务器(后端)通信以从反应原生前端发送信息?
- jquery - OnClick,使用 jQuery 显示带有复选框的 div
- javascript - 在 javascript 或 jquery 中向上滑动和向下滑动