如何使用responseBody编写POST操作的请求

时间:2019-07-13 17:58:14

标签: java spring spring-boot

在下面的示例中,我尝试通过POST和GET请求初始化变量,如下所示。来回请求,我想发例如1332 所以当我执行GET请求时,我应该得到相同的数字1332

现在,当应用程序针对发布请求运行时,我收到了来自邮递员的错误

"error": "Bad Request",
"message": "Required request body is missing: public void com.example.callwithparameters.controller.Call1.initparam1(java.lang.String)",

请让我知道如何解决此错误并执行正确的POST请求

Controller1

@Controller
@ResponseBody
@RequestMapping("/call1")
public class Call1 {

public String str = "inti";

@RequestMapping(value = "/initparam1", method = RequestMethod.POST)
public void initparam1(@RequestBody String val) {
    this.str = val;
}

@RequestMapping("/getparam1")
public String getParam1() {
    return this.str;
}
}

post_request_postman

http://localhost:8085/call1/initparam1?1332
result:"error"

get_request_postman

http://localhost:8085/call1/getparam1

result:init

2 个答案:

答案 0 :(得分:0)

在您的URL中,您将字符串作为QueryURL参数传递,而不是在RequestBody中传递     http://localhost:8085/call1/initparam1?1332

因此,将@RequestBody更改为@RequestParam("str")并发出如下请求:

http://localhost:8085/call1/initparam1?str=1332

OR 在请求正文中传递

答案 1 :(得分:0)

在邮递员中,您必须将请求类型更改为“ POST”。您可以将正文类型指定为“ RAW”数据,并提供您的值作为正文。