我尝试模拟restful服务器:
@RequestMapping(value = "/issuer/addIssuer", method = RequestMethod.POST)
@ResponseBody
public Issuer addIssuer(@ModelAttribute("issuer") Issuer issuer) {
if (issuer != null) {
logger.info("Inside addIssuer, adding: " + issuer.toString());
} else {
logger.info("Inside addIssuer...");
}
issuers.put(issuer.getTicker(), issuer);
return issuer;
}
控制器代码:
FORFILES
我填写了一些属性,但是当我调试服务器时,所有值都为空。
INFO:com.avaldes.tutorial.RestController - 在addIssuer内部,添加:[null,null,null,null]
IssuerName和country也是null .. 我的代码出了什么问题?
答案 0 :(得分:1)
您在控制器中使用@ModelAttribute
。在这种情况下,您需要将数据发送为application/x-www-form-urlencoded
:
MultiValueMap<String, Object> variables = new LinkedMultiValueMap<>();
variables.add("country", "Teacher 1");
variables.add("issuerName", "Department 1");
RestTemplate restTemplate = new RestTemplate();
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(variables, requestHeaders);
String url = txtHost.getText()+txtGet.getText();
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, Issuer.class);