[英]RestTemplate POST request RequestParams and RequestBody
[英]POST request with RequestBody is not working
在下面的示例中,我正在使用POST和GET方法。 post是初始化一个变量,而GET是得到这个变量。 我使用邮递员发出请求。
我收到一个错误
@RequestBody(value = "val") //cant resolve method value
请让我知道如何解决belwo错误,以便我可以使用post方法进行初始化并获取methdo来检索值
控制器1
@Controller
@RequestMapping("/call1")
public class Call1 {
public String str = "inti";
@RequestMapping(value = "/intiparam1", method = RequestMethod.POST)
public void intiParam1(@RequestBody(value = "val") String val) {
this.str = val;
}
@RequestMapping(value = "/getparam1", method = RequestMethod.GET)
public String getParam1() {
return this.str;
}
}
什么时候使用@RequestBody
?
您不能使用它的价值 。 当您有多个要执行操作的字段实体时,可以使用此功能。 假设您要保存用户,则可能需要先创建用户模型并在控制器@RequestBody
。
模型:
public class User
{
@Id
private int id;
private String firstname;
private String lastname;
//Getters-Setters, AllArgConstructor-constructor
}
@RequestMapping(value = "/requestBodyExample", method = RequestMethod.POST)
public String intiParam1(@RequestBody User user) {
return user.getFirstname();
}
创建一个类Variable,并在控制器中使用其他代码。
class Variable {
String data= 'val';
}
@RequestMapping(value = "/intiparam1", method = RequestMethod.POST)
public void intiParam1(@RequestBody Variable val) {
this.str = val.data;
}
发出请求时,将json作为{“ data”:“ 12345”}传递
然后在代码中使用@RequestBody变量v而不是String,因为它可以满足您的默认值需求,并且可以使代码可扩展,因为将来可以根据需要向现有变量添加不同的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.