首頁  >  文章  >  Java  >  如何處理帶有字串回傳類型的 Spring MVC @ResponseBody 方法中的 HTTP 400 錯誤?

如何處理帶有字串回傳類型的 Spring MVC @ResponseBody 方法中的 HTTP 400 錯誤?

Patricia Arquette
Patricia Arquette原創
2024-10-28 02:30:01262瀏覽

How to Handle HTTP 400 Errors in Spring MVC @ResponseBody Methods with String Return Type?

Spring MVC 的帶有字串回傳類型的@ResponseBody 方法中的HTTP 400 錯誤處理

使用Spring MVC 實作API 時,VC處理這一點至關重要優雅地犯錯。回應的一種常見錯誤代碼是 HTTP 400,表示「錯誤請求」。

在給定的場景中,match 方法傳回包含在 @ResponseBody 中的字串,您可能想知道如何使用 HTTP 400 進行回應錯誤代碼。使用 ResponseEntity 的傳統方法是這裡不直接適用,因為您的方法的傳回類型是 String。

要解決此問題,請考慮將 match 方法的回傳類型變更為 ResponseEntity。這將為您提供更明確處理 HTTP 狀態碼的靈活性。

更新的方法:

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public ResponseEntity<String> match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
    return new ResponseEntity<>(json, HttpStatus.OK);
}</code>

此修改後的方法可讓您傳回帶有適當的 HTTP 狀態碼。如果 matchId 無效,您可以傳回 HTTP 400 狀態的 ResponseEntity。對於有效的請求,您可以傳回帶有 HTTP 200 狀態和 JSON 回應的 ResponseEntity。

Spring 4.1 及更高版本:

從Spring 4.1 開始,ResponseEntity 類別提供您可以使用更簡潔的方法的輔助方法:

更新方法(Spring 4.1):

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public ResponseEntity<String> match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
    }
    return ResponseEntity.ok(json);
}</code>

以上是如何處理帶有字串回傳類型的 Spring MVC @ResponseBody 方法中的 HTTP 400 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn