Как я могу поместить cookie в веб-сервис RESTful Jersey? - PullRequest
2 голосов
/ 13 марта 2012

Я хотел бы поместить файл cookie из "PUT webservice result" в "POST webservice" с помощью API Джерси.

Вот мой код

WebResource service1 = client.resource("http://test.com");

ClientResponse logResponse = service1.accept(MediaType.APPLICATION_XML).put(ClientResponse.class, "<?xml version='1.0'?><test>1</test>");

WebResource service2 = client.resource("http://test.com/post");
WebResource.Builder builder = service2.getRequestBuilder();

for(Cookie c : logResponse.getCookies())
{
if(c.getName().equals("SESSID"))
    builder = builder.cookie(c);
}

ClientResponse test = builder.accept(MediaType.TEXT_XML).post(ClientResponse.class, "<?xml version='1.0'?><post>abc</post>");

Я подумал, что если я установлю cookie с помощью метода "Builder.cookie", значение cookie будет добавлено в заголовок запроса для веб-службы POST.

Таким образом, в этом случае файл cookie веб-службы PUT будет установлен в веб-службу POST.

Однако, если я проверяю заголовок (методами logResponse.getHeaders() и test.getHeaders()) после двух веб-служб, первая веб-служба PUT содержит файлы cookie, а вторая веб-служба POST не имеет файлов cookie.

Кто-нибудь может помочь мне сохранить cookie между двумя веб-сервисами?

1 Ответ

1 голос
/ 14 марта 2012

Сервер устанавливает cookie только один раз (т.е. только первый ответ имеет заголовок Set-Cookie).Как только клиент получает cookie, он должен прикрепить его к своим запросам, но сервер больше не отправляет cookie в ответах.Это нормальное поведение.Поэтому не уверен, какую проблему вы пытаетесь решить.

Вот как вы можете написать фильтр Джерси, который будет проверять, добавляет ли он куки, установленные сервером, к каждому запросу: Клиент Джерси: Добавление кукиЗапросить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...