Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST/Spring:将http正文信息(纯文本/文本)放入变量/对象中?_Java_Spring_Rest_Annotations - Fatal编程技术网

Java REST/Spring:将http正文信息(纯文本/文本)放入变量/对象中?

Java REST/Spring:将http正文信息(纯文本/文本)放入变量/对象中?,java,spring,rest,annotations,Java,Spring,Rest,Annotations,通过下面的代码,我成功地读取了作为字符串的纯文本出现的HTTPPOST信息,并用字符串响应它 我的问题是:我假设http正文将包含如下形式的信息: Name="myName"&place="here"&age="40" 我将其作为一个完整的字符串接收,但在寻找将这些对放入变量或对象的方法时迷失了方向。并将我的回答放入这个模式中 你能帮忙吗 @RequestMapping( value="/info", method = RequestMethod.POST, consumes

通过下面的代码,我成功地读取了作为字符串的纯文本出现的HTTPPOST信息,并用字符串响应它

我的问题是:我假设http正文将包含如下形式的信息:

Name="myName"&place="here"&age="40"
我将其作为一个完整的字符串接收,但在寻找将这些对放入变量或对象的方法时迷失了方向。并将我的回答放入这个模式中 你能帮忙吗

@RequestMapping( value="/info", 
method = RequestMethod.POST, consumes = {"text/plain"} )

public ResponseEntity<String> receiveBody(@RequestBody String vtext  )
{
    ....
    ....
    return new ResponseEntity<String> (vtext, headers, HttpStatus.OK);
}
}
@RequestMapping(value=“/info”,
method=RequestMethod.POST,使用={“text/plain”})
公共响应主体接收主体(@RequestBody String vtext)
{
....
....
返回新的ResponseEntity(vtext、headers、HttpStatus.OK);
}
}

我认为处理此类问题的更好解决方案是
@RequestParam
注释。假设您有这样一个表单:

 <input type="text" name="name" id="name"/>
 <input type="text" name="age" id="age"/>
 <input type="text" name="place" id="place"/>

现在需要做的就是在方法的参数列表中添加适当的注释。例如:

@RequestMapping( value="/info", method = RequestMethod.POST)
public ResponseEntity<String> receiveBody(@RequestParam("name") String name, @RequestParam("place") String place, @RequestParam("age") int age)
{
    //you can do something with variables age, name and place here
    ....
    return new ResponseEntity<String> ("someResponse", headers, HttpStatus.OK);
}
@RequestMapping(value=“/info”,method=RequestMethod.POST)
public ResponseEntity receiveBody(@RequestParam(“name”)字符串名称、@RequestParam(“place”)字符串位置、@RequestParam(“age”)int-age)
{
//您可以在此处使用变量年龄、名称和地点进行操作
....
返回新的ResponseEntity(“someResponse”,标题,HttpStatus.OK);
}

谢谢,这是一个很好的解决方案,我可以将其用于第二项任务。但在这种情况下,另一方正在http正文中设置这些数据/信息并将其发送(尽管我可以获得一些影响,如何),因此我将不可能从表单中获取信息。如果另一方正在向您发送键和值对,它应该可以正常工作,因为post变量以这种格式存储在正文中。如果不起作用,请尝试将
consumes={“application/x-www-form-urlencoded”}
添加到
@RequestMapping
注释中。谢谢,您关于内容类型表单的提示使建议完美无瑕。