我使用的是Spring boot 1.4.0,请考虑@RestController
中的以下代码,我期望的是,服务器端将收到带有form_urlencoded内容类型的http主体,但不幸的是它要求我query
参数类型email
和token
。这里的问题是什么以及如何解决?
@DeleteMapping(consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void removeAdmin(@RequestParam(value = "email") String email, @RequestParam(value = "token") String token) {
//...
}
答案 0 :(得分:2)
@DeleteMapping
只是提供@RequestMapping(method=DELETE)
的便利扩展。它不会处理请求参数。如果需要数据来执行工作,您仍需要在控制器方法签名中映射这些内容。
由于你想要一个身体,你可以创建一个对象并将其标记为@RequestBody:
public class DeleteBody {
public String email;
public String token;
}
public void removeAdmin(@RequestBody DeleteBody deleteBody) {
...
}