我有一个spring web服务方法,我希望得到一个字符串作为参数。字符串在请求的正文中发送。我的Web服务类是:
@Controller
@RequestMapping(value = "/users/{uid}/openchart")
public class OpenChartWebService {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String saveABC(@PathVariable("uid") Long uid,
@RequestBody String myString) {
System.out.println("sent string is: "+myString);
return "something";
}
}
我的身体要求是:
{
"name":"Ramesh"
}
但这不起作用。这显示了"错误请求" HTTP错误(400)。如何在正文中发送字符串以及如何在webservice方法中获取在主体中发送的字符串?
答案 0 :(得分:0)
正如@Leon建议的那样,您应该将媒体类型添加到您的请求映射中,但也要确保您的类路径中有Jackson。您还希望将@RequestBody参数类型更改为具有" name"属性,而不仅仅是一个字符串,以便你不必在之后转换它。
public class Person {
private name;
public getName() {
return name;
}
}
如果您的数据对象如上所示,那么您可以将@RequestBody参数设置为Person类型。
如果你想要的只是一个字符串,那么也许只需要传递" name"的值。在您的请求正文中而不是具有名称属性的对象。