如何从java中的REST web服务的curl中获取参数的值

有谁知道如何从使用java.I的REST Web服务中的curl命令获取参数的值,在NetBean IDE中使用泽西框架和Java编写了REST Web服务。 这是我没有元数据的上传文件的curl命令:

curl -T C:UsersFoldersa.jpg -H "Content-Type:application/vnd.org.snia.cdmi.dataobject" http://localhost:8080/users/folder/a.jpg 

这是我的HttpPut上传方法

@PUT
@Path("/{directory:.+}")
public Response doPut(@PathParam("directory")String data,byte[]contents)
{
..............
}

这是我使用元数据上传文件的curl命令

curl  --data " { "metadata" : "Username":"name"}" -T C:UsersFoldersa.jpg -H "Content-Type:application/vnd.org.snia.cdmi.dataobject" http://localhost:8080/users/folder/a.jpg 

这是我的HttpPut上传方法

@PUT
@Path("/{direcotry:.+}")
public Response doPut(@PathParam("directory")String data,byte[]contents,String meta)
{
..............
}

我的问题是当我没有元数据上传文件,我可以成功上传。 但是当我添加元数据时,我无法从doPut方法中的curl命令中获取“--data”值。 我该如何解决它?


如果你需要在一个请求中同时提交二进制数据(jpg)和一些元数据(json字符串),我建议提交一个表单 (内容类型为application/x-www-form-urlencoded ) 。 这使您可以将两个项目都包含在请求正文中。

请求中的每个项目都使用@FormParam注释映射到方法参数,因此您可以使用类似下面的内容:

@PUT
@Path("/{directory:.+}")
@Consumes("application/x-www-form-urlencoded")
public Response doPut(@PathParam("directory") String directory,
                      @FormParam byte[] image,
                      @FormParam String metadata) {
    ...
}

有关如何继续使用curl进行测试的详细信息,请参阅--data-urlencode参数。

链接地址: http://www.djcxy.com/p/48627.html

上一篇: how to get parameters' value from curl in REST web service in java

下一篇: Recommendations of Python REST (web services) framework?