首页 > 解决方案 > 我无法在方法中包含 @RequestBody 的 SoapUI 中测试 Rest 帖子,感谢任何帮助

问题描述

@RequestMapping(value="/postdata", method= RequestMethod.POST, consumes="application/json")
public String postdata(@RequestBody String test, @RequestBody String data) {
        logger.info("password reset Request " + requestbody.get("test"));
        logger.info("password reset Request " + data);
        return "Hello";
}

已解决 [org.springframework.http.converter.HttpMessageNotReadableException:缺少所需的请求正文:public java.lang.String mail.controller.EmailNotifictaionController.postdata(java.lang.String,java.lang.String)]

我在 SOAPUI 中的输入是 { "test":"my", "data":"god" }

标签: javaspring-bootrestsoapui

解决方案


您使用的是两个@RequestBody,这是不正确的方法,因为一个请求只能有一个请求正文。

您可以将两个请求主体组合成单个请求主体,也可以构建一个包含testdata变量的包装类,例如:

public class Body {
    public String test;
    public String data;
    // You can also keep them private and have getters/setters.
}

并在 API 方法参数中使用此类

@RequestMapping(value="/postdata", method= RequestMethod.POST, consumes="application/json")
public String postdata(@RequestBody Body body) {
        logger.info("password reset Request " + body.test);
        logger.info("password reset Request " + body.data);
        return "Hello";
}

你可以试试这个方法,应该可以的。


推荐阅读