我有一个 Spring 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 方法中发送正文中的字符串以及如何获取正文中发送的字符串?
正如 @Leon 所建议的,您应该将媒体类型添加到您的请求映射中,但也要确保您的类路径上有 Jackson。您还需要将 @RequestBody 参数类型更改为具有“name”属性的类型,而不仅仅是字符串,这样您就不必在之后进行转换。
public class Person {
private name;
public getName() {
return name;
}
}
如果您的数据对象类似于上面的内容,那么您可以将 @RequestBody 参数设置为 Person 类型。
如果您想要的只是一个字符串,那么也许只需在请求正文中传递“name”的值,而不是具有 name 属性的对象。
我是一名优秀的程序员,十分优秀!