我正在try 理解HTTP DELETE请求的行为.
在我的Java Web应用程序上,我定义了以下内容
@DeleteMapping("url/route")
public ResponseEntity<String> route(@RequestParam int param1, @RequestParam long param2, @RequestParam long param3, @RequestParam String param4) {
System.out.println(param1 + "-" + param2 + "-" + param3 + "-" + param4 );
return new ResponseEntity<String>(HttpStatus.OK);
}
@DeleteMapping("url/route2")
public ResponseEntity<String> route2(@RequestBody String body) {
System.out.println(body);
return new ResponseEntity<String>(HttpStatus.OK);
}
在Java客户端上,我执行以下操作
public final void myFunction(final int param1, final long param2, final long param3, final String param4) {
restTemplate.delete("http://localhost:8090/url/route?"
+ "param1=" + param1 + "&"
+ "param2="+ param2 + "&"
+ "param3=" + param3 + "&"
+ "param4=" + param4, String.class);
restTemplate.delete("http://localhost:8090/url/route2", "SomeText", String.class);
}
第一个请求运行良好,日志(log)显示良好.但是,在第二种情况下,我得到以下错误
HttpMessageNotReadableException:缺少必需的请求正文: 公共org.springframework.http.ResponseEntity<;java.lang.String>; Com.thales.atm.thmi.microservice.CanvasController.deleteGraphicObject2(java.lang.String)]
我使用了Spring Boot(我的项目中的v2.7.1)模块Spring-Boot-starter-web.
有人能解释一下这个删除请求的正文参数用法有什么问题吗?
谢谢!