我现在想获取一个content-type=application/json的回调数据,奇怪的是我使用@RequestBody获取不到数据,如下代码所示 :
@Data
public class BaiduDocNofityResponse {
private String messageId;
private String messageBody;
private String notification;
private String server;
private String subscriptionName;
private String version;
private String signature;
}
@PostMapping("/doc/notify")
public void notify(@RequestBody BaiduDocNofityResponse response){
log.info("百度上传文档的回调通知:");
log.info(response.toString());//**这里根本没有打印出数据**
}
但是如果换成下面这段代码就能获取到:
@PostMapping("/doc/notify")
public void notify(HttpServletRequest request) throws IOException {
log.info("request content-type=" + request.getContentType());
log.info("百度上传文档的回调通知:" + request.toString());
InputStream is = request.getInputStream();
String val = StreamUtil.inputStream2String(is, "UTF-8");
log.info(val);//**这里能打印出数据**
}
有谁知道是什么原因吗?
解决了,原因既然是log.info(response.toString());//这里的toString()不起作用,如果直接获取如:response.messageBody是获取到的,我真是醉了