我使用SpringBoot 1.2.6创建了一个SpringREST API。 下面是我的帖子方法,它的工作原理。但是当我创建一个Put方法时,它无法正常工作。它没有在参数中获取数据。
@CrossOrigin
@RequestMapping(
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public String createArticle(String article_name, String article_content, Long image_id, String category,
HttpServletRequest req, Authentication authentication) throws Exception {...}
PUT METHOD //编辑文章
@RequestMapping(value = "/{article_id}",
method = RequestMethod.PUT,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
produces = MediaType.APPLICATION_JSON_VALUE)
public String editArticle(@PathVariable("article_id") Long article_id,
String article_name, String article_content, String category, HttpServletRequest req) throws Exception {...}
我已设置调试器,下面是调试快照 Debug Image
答案 0 :(得分:0)
使用PUT
方法,它在春季启动时不支持。我是否需要添加任何新配置。
Put方法仅适用于请求没有任何参数。如果我添加任何查询参数或表单数据,它都无法正常工作。
您将实施如下代码。
@RequestMapping(value = "/", method = RequestMethod.PUT)
public @ResponseBody String createArticle(@RequestBody CreateArticle request) {
LOG.info(request.toString());
return "ok";
}
在CreateArticle
中,请求类以json格式传递值,并包括所有参数,如String article_name
,String article_content
,Long image_id
,String {{1} },category
,身份验证HttpServletRequest req
。