SpringREST - RequestMethod.PUT无效

时间:2016-01-06 14:55:23

标签: spring-security spring-rest

我使用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

1 个答案:

答案 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