@RequestBody return 创建正文后为空
@RequestBody return null after create body
我已经使用 Gson 创建了 RequestBody
并添加到 Post
请求中,但是在 api (url) 的 controller
中,所有属性 return空。
添加到RequestBody
:
MediaType JSON = MediaType.parse("application/json; charset=utf-8");
Gson gson = new Gson();
JSONObject jsonObject = new JSONObject();
jsonObject.put("dataFromAppChinh", "demo thoi");
jsonObject.put("path", path);
String body = gson.toJson(jsonObject);
RequestBody requestBody = RequestBody.create(body, JSON);
Request request = new Request.Builder().url("http://" + path + "/api/startapp").post(requestBody).build();
控制器
@RestController
@RequestMapping("/api")
public class ChatBot {
@PostMapping(value = "/startapp")
@ResponseBody
public Object start(@RequestBody() ChatBotResponse item) {
try {
item.setResponseList(startApp(item.getPath()));
return item;
} catch (Exception ex) {
log.error(ex);
return ex.getMessage();
}
}
}
我的ChatBotResponse
POJO:
@Data
public class ChatBotResponse
{
private String dataFromAppChinh;
private String responseList;
private String path;
}
我发现问题是 gson.toJson(jsonObject)
在我的 Json String
之前插入 map
字符串。
我改为 jsonObject.toString()
并且有效。
我已经使用 Gson 创建了 RequestBody
并添加到 Post
请求中,但是在 api (url) 的 controller
中,所有属性 return空。
添加到
RequestBody
:MediaType JSON = MediaType.parse("application/json; charset=utf-8"); Gson gson = new Gson(); JSONObject jsonObject = new JSONObject(); jsonObject.put("dataFromAppChinh", "demo thoi"); jsonObject.put("path", path); String body = gson.toJson(jsonObject); RequestBody requestBody = RequestBody.create(body, JSON); Request request = new Request.Builder().url("http://" + path + "/api/startapp").post(requestBody).build();
控制器
@RestController @RequestMapping("/api") public class ChatBot { @PostMapping(value = "/startapp") @ResponseBody public Object start(@RequestBody() ChatBotResponse item) { try { item.setResponseList(startApp(item.getPath())); return item; } catch (Exception ex) { log.error(ex); return ex.getMessage(); } } }
我的
ChatBotResponse
POJO:@Data public class ChatBotResponse { private String dataFromAppChinh; private String responseList; private String path; }
我发现问题是 gson.toJson(jsonObject)
在我的 Json String
之前插入 map
字符串。
我改为 jsonObject.toString()
并且有效。