glass fish java 我可以通过 get 请求发送对象吗?

glass fish java can i send object through get request?

我有一个 class 这样的:

class Customer {
    private int id;
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

我有一个 glass fish 网络服务:

我想知道可以使用 get

发送客户对象

(我知道我可以在 post 中做到这一点,但在 get 中...我不知道)

这是我尝试过的:

@GET
    @Path("/test")
    @Produces(MediaType.TEXT_PLAIN)
    @Consumes(MediaType.APPLICATION_OCTET_STREAM)
    public String test(@QueryParam("customer") Customer customer) {
        return "Done " + customer.getId();
    }

然后我这样称呼它:

..../test?id=4&name=william

我知道这是错误的,但我不知道正确的方法,我不知道使用 get

是否可行

@QueryParam 应该用于每个单独的参数。例如

/cusomters?name=hello&id=1

@GET
@Produces(...)
public Response get(@QueryParam("name") String name,
                    @QueryParam("id") int id)

如果你想把它放入一个bean中,你可以使用@BeanParam,它允许你将任意的@XxxParam放入一个bean中。例如

class Customer {
    @QueryParam("name")
    private String name;
    @QueryParam("id")
    private int id;
    // getters/setters
}

@GET
public Response get(@BeanParam Customer customer)

但请牢记 REST 原则。要创建客户资源,应该 POST 完成。还要考虑安全问题。您不希望 URL 中包含私人用户信息。