我正在尝试使用 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);
}
服务是:
@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);
}
我收到 400 Bad Request。
我做错了什么?
我正在使用默认的 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);
}
关于java - 如何使用 Spring 的 RestTemplate 来 POST 一个字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643589/