MDe*_*hev 3 java arrays post spring resttemplate
我正在尝试使用 spring 的 restTemplate 发布一个简单的字符串数组。有人成功了吗?
客户端:
public void save(){
String company = "12345";
String productId = "10";
String[] colors = {"A","B","C","D","E"};
String convertUrl = "http://localhost:8080/cool-web/save";
MultiValueMap<String, Object> convertVars = new LinkedMultiValueMap<String, Object>();
convertVars.add("companyID", StringUtils.trimToEmpty(company));
convertVars.add("productId", StringUtils.trimToEmpty(productId));
convertVars.add("disclaimer", StringUtils.trimToEmpty("ffs"));
convertVars.add("colorsArray", colors);
restTemplate.postForObject(convertUrl, null, String.class, convertVars);
}
Run Code Online (Sandbox Code Playgroud)
服务是:
@RequestMapping(value = "/save", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public void save(@RequestParam("colorsArray[]") String[] colors,
@RequestParam("disclaimer") String disclaimer,
@RequestParam("companyID") String companyID,
@RequestParam("productId") String productId) {
resourceService.save(colors, disclaimer, companyID, productId);
}
Run Code Online (Sandbox Code Playgroud)
我收到了 400 个错误的请求。
我究竟做错了什么 ?
我正在使用默认的 messageConverters。
我是否需要为简单的字符串数组实现自定义 messageConverter ?
这是解决方案:
public void save(){
String company = "12345";
String productId = "10";
String[] colors = {"A","B","C","D","E"};
String convertUrl = "http://localhost:8080/cool-web/save";
MultiValueMap<String, Object> convertVars = new LinkedMultiValueMap<String, Object>();
convertVars.add("companyID", StringUtils.trimToEmpty(company));
convertVars.add("productId", StringUtils.trimToEmpty(productId));
convertVars.add("disclaimer", StringUtils.trimToEmpty("ffs"));
for(String color:colors){
convertVars.add("colorsArray[]", color);
}
restTemplate.postForObject(convertUrl, convertVars , String.class);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4895 次 |
最近记录: |