Отправка пары имя-значение в POST с использованием клиента Jersey

Как я могу передать пары имя-значение в качестве тела в службу POST ReST в Джерси. Нечто похожее на код ниже, используя Apache Commons PostMethod

    final PostMethod post = new PostMethod(url);
    post.setRequestBody(new NameValuePair[] {
            new NameValuePair("loginId", userId),
            new NameValuePair("logonPassword", password),
            new NameValuePair("signature", signature),
            new NameValuePair("timestamp", timestamp),
            new NameValuePair("sourceSiteId", sourceSiteId) });

Я портирую этот вызов на свое приложение. Текущий вызов использует Apache Commons PostMethod. В моем приложении я использовал Джерси. Поэтому я хочу использовать классы / функции Джерси вместо Apache.

1 ответ

Решение

Есть интерфейс MultivaluedMap в JAX-RS с 'MultivaluedMapImpl' в Джерси.

Client client = Client.create();
WebResource webResource = client.resource("http://site.com/resource");
MultivaluedMap<String, String> map = new MultivaluedMapImpl();
map.put("loginId", loginId);
...
ClientResponse response = webResource.type("application/x-www-form-urlencoded")
             .post(ClientResponse.class, map);

Вот более полный пример того, как использовать клиентский API Джерси.

Другие вопросы по тегам