Отправка пары имя-значение в 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 Джерси.