簡體   English   中英

Spring 注解缺少 requestBody

[英]Spring Annotation missing requestBody

我用一個簡單的 post 和 get 方法編寫了一個非常簡單的控制器類。

今天是我第一次使用 Postman - 我不知道我做錯了什么,但是每次使用POST映射時,我都會得到:

{
  "timestamp": "2020-03-29T19:05:49.548+0000",
  "status": 400,
  "error": "Bad Request",
  "message": "Required request body is missing: public int pl.futurecollars.controller.GreetingControler.saveGreeting(pl.futurecollars.controller.Greeting)",
  "path": "/greetings"
}

控制器類:

@RestController
@RequestMapping("/greetings")
public class GreetingControler {

    private Map<Integer, Greeting> greetings = new HashMap<>();
    private int counter = 0;

    @GetMapping
    public Collection<Greeting> getGreetings() {
        return greetings.values();
    }

    @PostMapping
    public int saveGreeting(@RequestBody Greeting greeting){
        greeting.setId(counter);
        greetings.put(counter, greeting);
        return counter++;
    }

    @DeleteMapping("/{id}")
    public void deleteGreeting(@PathParam("id") int greetingId){
        greetings.remove(greetingId);
    }
}

我添加了一個@RequestBody但它仍然說它丟失了。

如何解決這個煩惱?

首先根據您在注釋中提到的錯誤驗證您的輸入,其中一個字段名稱以. 相反,它應該在"" 您可以在https://jsoneditoronline.org/上驗證您的 json。 還添加郵遞員快照僅供參考內部郵遞員-> 身體,您可以在其中放置有效載荷

錯誤消息對缺少的內容有明確的描述:

缺少所需的請求正文:...

因此,您錯過了向請求添加正文。

您的配置應如下所示:

在此處輸入圖片說明

正文應該是您的Greeting類的 JSON 對象。
它應該發布到raw標簽。

另外,不要忘記header適當的Content-Type

在此處輸入圖片說明

有用的鏈接:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM