jax-rs客户端帖子同时收到JSON和Cookie如何?

时间:2014-12-02 12:49:38

标签: java cookies jax-rs

我用jax-rx客户端做了一个简单的客户端请求 - 使用post。

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);

所以这对我来说非常合适。但我还需要从'Set-Cookie'中读取一个cookie - 但我没有完整的回复。如何访问'Set-Cookie'?我正在使用Wildfly,如果我读取完整的响应而不是将实际数据读入ResponseContainer,那么我似乎无法通过getEntity方法访问实际数据,这似乎是是响应实例上唯一可用的方法。

亲切的问候

托本

1 个答案:

答案 0 :(得分: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();