[英]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.