Java 使用RESTWebService下载文件

Java 使用RESTWebService下载文件,java,web-services,rest,post,Java,Web Services,Rest,Post,我使用RESTWeb服务(GET)方法下载了一个文件。它工作得非常好。 但是我想知道,是否有任何方法可以使用POST方法实现下载功能,以便我可以传递一些输入值。 对于GET方法,我在URL中传递查询参数。对于POST方法,我希望以JSON格式传递值。因此,请您建议我,我如何实现这一点 @GET @Path("/downloaddocument") @Produces("application/pdf") public Response downloadDocument(@QueryParam("

我使用RESTWeb服务(GET)方法下载了一个文件。它工作得非常好。 但是我想知道,是否有任何方法可以使用POST方法实现下载功能,以便我可以传递一些输入值。 对于GET方法,我在URL中传递查询参数。对于POST方法,我希望以JSON格式传递值。因此,请您建议我,我如何实现这一点

@GET
@Path("/downloaddocument")
@Produces("application/pdf")
public Response downloadDocument(@QueryParam("Regno") String Regno) {

           //Code
    }

我不确定如何以JSON格式传递值。下面是使用HTML表单输入的示例:

@POST
@Consumes("application/x-www-form-urlencoded")
@Produces("application/pdf")
@Path("/downloaddocument")
public Response downloadDocument(@FormParam("filename") String filename) {
    // Return your PDF document as a Responce here
}
更新:要将输入作为JSON传递,需要使用

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces("application/pdf")
@Path("/downloaddocument")
public Response downloadDocument(MyObject jsonObject) {
   String name = jsonObject.getName();
   // Return you PDF document as a response here
}
其中jsonObject是一个对象,它为JSON输入建模

public class MyObject  {
    String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
假设您的JSON文件具有以下结构

{
    "name" : "myfile.pdf"
}

你的问题能更具体一点吗?你试过什么?您的工作成果是什么?感谢您的回复…是的,以json格式{“regnum”:“123”}传递输入。