基于Spring @Controller对x-www-form-urlencoded的问的答案
我写了下面的@Controller方法
@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST
, produces = {"application/json", "application/xml"}
, consumes = {"application/x-www-form-urlencoded"}
)
public
@ResponseBody
Representation authenticate(@PathVariable("email") String anEmailAddress,
@RequestBody MultiValueMap paramMap)
throws Exception {
if(paramMap == null || paramMap.get("password") == null) {
throw new IllegalArgumentException("Password not provided");
}
}
失败的请求因以下错误
{
"timestamp": 1447911866786,
"status": 415,
"error": "Unsupported Media Type",
"exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
"message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
"path": "/users/usermail%40gmail.com/authenticate"
}
[PS:Jersey要友好得多,但鉴于这里的实际限制,现在无法使用它]
问题在于,当我们使用 application / x-www-form-urlencoded时
,Spring不会将其理解为RequestBody。因此,如果要使用它,则必须删除 @RequestBody 批注。
然后尝试以下操作:
@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
produces = {MediaType.APPLICATION_ATOM_XML_VALUE, MediaType.APPLICATION_JSON_VALUE})
public @ResponseBody Representation authenticate(@PathVariable("email") String anEmailAddress, MultiValueMap paramMap) throws Exception {
if(paramMap == null && paramMap.get("password") == null) {
throw new IllegalArgumentException("Password not provided");
}
return null;
}
请注意,删除了注释 @RequestBody
@PostMapping public UserResponse createUser(@RequestBody UserRequest userDetail){ 这是我收到的错误代码 } 我尝试了很多不同的方法仍然没有得到解决方案这是来自邮递员的图片来自邮递员的图片
问题内容: 我写了下面的@Controller方法 请求失败并出现以下错误 [PS:泽西岛要友好得多,但鉴于此处的实际限制,现在无法使用它] 问题答案: 问题在于,当我们使用application / x-www-form-urlencoded时,Spring不会将其理解为RequestBody。因此,如果要使用它,则必须删除@RequestBody批注。 然后尝试以下操作:
我以前有ElasticSearch 5.2,刚刚升级到6.0。 我试图创建一个索引模板以下指南在这里,但得到了错误 我的问题是
当内容类型为application/x-www-form-urlencoded;charset=UTF-8并且请求正文为text或application/json时,如何在控制器中进行post映射。我读到@RequestBody不能与UrlenCoded一起工作。如何重新发行这个问题。
这是我的课。当我使用带有有效json的邮递员访问该url时http://localhost:8090/user 我犯了一个错误 我试过这个https://stackoverflow.com/a/38252762/11369236 我不想像这里这样使用requestparam https://stackoverflow.com/a/43065261/11369236 一些答案建议使用 但spring
任务很简单,客户机使用application/x-www-form-urlencoded媒体类型的POST发送请求。服务器接收并响应状态为OK。但是看起来媒体类型application/x-www-form-urlencoded和application/x-www-form-urlencoded之间有区别;charset=UTF-8 服务器部分: 客户部分: 客户端的结果输出请求: 回应: 和调试