Почта клиента jax-rx получает как JSON, так и Cookie, как?

1

Я сделал простой клиентский запрос с клиентом jax-rx - используя пост.

ResponseContainer container = new ResponseContainer();
WebTarget oxipTarget = ClientBuilder.newClient().target(fullAuthUrl);
container = oxipTarget.request(MediaType.APPLICATION_JSON_TYPE).header("SQLREPORTS","DSALLOWED")
                        .post(Entity.entity(form.asMap(), MediaType.APPLICATION_FORM_URLENCODED),ResponseContainer.class);

Так что это отлично работает для меня. Но мне также нужно прочитать cookie из "Set-Cookie", но у меня нет полного ответа. Как получить доступ к "Set-Cookie"? Я использую Wildfly, и если я прочитаю полный ответ вместо того, чтобы читать фактические данные в ResponseContainer, то я не могу получить доступ к фактическим данным методом getEntity, который, кажется, единственный доступный метод ответа пример.

с уважением

Торбена

Теги:
cookies
jax-rs

1 ответ

0
Лучший ответ

Вы можете получить Response, а затем прочитать тело с Response.readEntity(Class type). post перегружен, с вариантами, чтобы вернуть Response или объект тела объекта (указав тип класса как второй аргумент, как вы это делаете). Если вы не укажете тип объекта ответа (как второй аргумент), он вернет Response

Response response = target.request().post(Entity.entity(..));
ResponseContainer container = response.readEntity(ResponseContainer.class);
Map<String, NewCookie> cookies = response.getCookies();
response.close();
  • 0
    Я использую Intellij и, как я уже писал, он не показывает мне возможность чтения readEntity (ResponseContainer.class). У меня есть только getEntity на ответ. Это Resteasy 3.0.8 Финал, предоставленный Wildfly
  • 0
    Тогда вы должны использовать неправильный класс Response . Убедитесь, что это javax.ws.rs.core.Response . Этот класс был доступен начиная с JAX-RS 1.0, поэтому Resteasy 3.xx будет иметь его.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню