放置多部分请求不起作用

时间:2013-08-06 20:15:47

标签: java spring java-ee curl

为什么这不起作用?我正在尝试这个对我的Spring 3.2 MVC应用程序。它适用于POST请求。

curl -X PUT http://localhost:8080/bananas/1 --form data='{"description":"Hei", "status":"REJECTED"};type=application/json'
  

java.lang.IllegalArgumentException:无法获取请求部分:   数据。缺少部件或未配置多部件处理。

@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
    public ResponseEntity updateQuestion(@PathVariable final int id,
                                         @RequestPart(value = "data") final Banana banana,
                                         @RequestPart(value = "image", required = false) final MultipartFile imageFile) {

2 个答案:

答案 0 :(得分:-1)

实际上,PUT请求应该在Request Body(或payload)上工作,而不是在Request Parameters上工作。从这个意义上讲,servlet API&春天的处理是正确的。

从jquery和javascript调用中传递数据元素的更简单方法。将参数作为url.Means的一部分设置在url字段中设置参数。否则你必须使用GET执行代码。

答案 1 :(得分:-1)

var x=10;
$.ajax({
            url: "/ritesh/" + x + "/patil" + "?param1=param2Val&..",
            type: "PUT",
            data: "",
            success: function(response) {
                // ....
            }
     });