Posted at

Spring Web MVC @RequestBody で空のリクエストを受けるには

More than 1 year has passed since last update.

@RequestBody には required 属性があって、そのデフォルト値は true です。

例えば以下のような API が定義されていて(リクエストをそのまま返す API です)、これに対して「空」のリクエストを送った場合、デフォルト値のままだと、org.springframework.http.converter.HttpMessageNotReadableException が発生します。

@PostMapping(path = "/hogehoge",

consumes = "text/plain; charset=UTF-8",
produces = "text/plain; charset=UTF-8")
@ResponseBody
public String execute(@RequestBody String body) {
return body;
}

@RequestBody(required=false) とすることで、空のリクエストも処理できるようになります。ちなみに空のリクエストの場合、body には null が入ります。


  • Java 8

  • Spring Web MVC 4.3.6