簡體   English   中英

為什么Springboot @requestbody參數總是接收空?

[英]Why Springboot @requestbody parameter always receives empty?

全部。 我目前遇到了一個意想不到的情況。 我完成了我的API,我希望通過Postman進行測試; 但是,我不知道為什么我總是得到一個空括號{} 我該如何解決?

@PostMapping(value="/register")
public Status registerSingleConnection(@RequestBody JSONObject param){
    System.out.printlin(param); // para always be {}
    ....
}

這是我在generated-requests.http中嘗試過的:

POST http://127.0.0.1:8082/register
Content-Type: application/json
{
    "id": "1",
    "val": "999"
}

您可以遵循的解決方案很少。

1、使用string作為request body,轉換為json

    @PostMapping(value="/register")
    public Map<String, Object> registerSingleConnection(@RequestBody String param){
        System.out.println(param);
        JSONObject json = new JSONObject(param);  // convert to json
        return json.toMap();
    }

2.使用Map作為請求體

    @PostMapping(value="/register")
    public Map<String, Object> registerSingleConnection(@RequestBody Map<String, Object> param){
        System.out.println(param);
        return param;
    }

3.使用自定義類型作為請求體

    public class Request {
        private String id;
        private String val;

        public Request(String id, String val) {
            this.id = id;
            this.val = val;
        }

        public JSONObject toJSON() {

            JSONObject json = new JSONObject();
            json.put("id", id);
            json.put("val", val);

            return json;
        }
    }


    @PostMapping(value="/register")
    public Map<String, Object> registerSingleConnection(@RequestBody Request param){
        JSONObject json = param.toJSON();
        return json.toMap();
    }

在此處輸入圖像描述

暫無
暫無

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

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