如何从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
参数。
上一篇: how to get parameters' value from curl in REST web service in java
下一篇: Recommendations of Python REST (web services) framework?