我創建了一個簡單的REST端點,客戶端可以使用Spring Boot使用多部分表單數據發佈。 REST端點接受一個txt文件並執行必要的功能。但是,當請求無效或不正確時,我無法返回正確的HTTP響應。如何正確響應當前請求不是REST中的多部分請求
我的控制器看起來像
@RequestMapping(value = "/create", method = RequestMethod.POST)
public String create(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
//perform some steps
return "file succesfully creted!";
}else{
logger.warn("file is empty");
return "file wrong";
}
}
我希望REST正確發送使用ResponseEntity適當的HTTP響應和狀態。現在,當客戶發出請求
curl -X POST localhost:8080:/create -F "[email protected]"
有了這個請求,一切正常。現在讓我們說用戶無法附加文件或任何其他不正確的請求,我無法捕獲它。它進入調度程序servlet並引發錯誤。
{
"timestamp": 1474236317572,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.multipart.MultipartException",
"message": "Current request is not a multipart request",
"path": "/create"
}
我該如何處理這個錯誤並將其發回給用戶。我應該有一個過濾器嗎?我應該如何編寫這個過濾器?或者應該試一試?
我是新來的春天,但我相信你可以在你的控制器來處理MultipartException寫一個異常處理程序。當引發異常時,控制器中的處理程序方法將執行。這裏可能會幫助你.https://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc – jmw5598