使用泽西岛客户端执行开机自检操作

2022-08-31 16:32:10

在Java方法中,我想使用泽西岛客户端对象在RESTful Web服务(也使用泽西岛编写)上执行POST操作,但我不确定如何使用客户端发送将在服务器上用作FormParam的值。我能够很好地发送查询参数。


答案 1

我自己还没有这样做,但是Google-Fu的快速浏览揭示了 blogs.oracle.com 的技术提示,其中包含您要求的示例。

示例取自博客文章:

MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("name1", "val1");
formData.add("name2", "val2");
ClientResponse response = webResource
    .type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
    .post(ClientResponse.class, formData);

那有什么帮助吗?


答案 2

从 Jersey 2.x 开始,该类被 MultivaluedHashMap 取代。您可以使用它来添加表单数据并将其发送到服务器:MultivaluedMapImpl

    WebTarget webTarget = client.target("http://www.example.com/some/resource");
    MultivaluedMap<String, String> formData = new MultivaluedHashMap<String, String>();
    formData.add("key1", "value1");
    formData.add("key2", "value2");
    Response response = webTarget.request().post(Entity.form(formData));

请注意,表单实体以 的格式发送。"application/x-www-form-urlencoded"


推荐