Я сделал простой клиентский запрос с клиентом 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
, который, кажется, единственный доступный метод ответа пример.
с уважением
Торбена
Вы можете получить 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();
Response
. Убедитесь, что этоjavax.ws.rs.core.Response
. Этот класс был доступен начиная с JAX-RS 1.0, поэтому Resteasy 3.xx будет иметь его.