是否有通过cookie来使用相同的客户对象的所有请求的好方法?
现在我必须通过cookie来这样每一个请求:休息Jersey客户端如何通过cookie的所有请求
final Client client = ClientBuilder.newClient(clientConfig);
UriBuilder authenticate_url = UriBuilder.fromUri("xxxxxxxxx/authenticate");
WebTarget webTarget = client.target(authenticate_url);
Invocation.Builder invocationBuilder = webTarget.request(MediaType.APPLICATION_XML);
Response response = invocationBuilder.get();
Map<String, NewCookie> cookies = response.getCookies(); //store cookies
webTarget = client.target(other_url);
invocationBuilder = webTarget.request(MediaType.APPLICATION_XML).cookie(cookies.get("KEY"));
response = invocationBuilder.get(); //works
invocationBuilder = webTarget.request(MediaType.APPLICATION_XML);
response = invocationBuilder.get(); //does not work
[使用ClientRequestFilter(https://jersey.github.io/documentation/latest/filters-and-interceptors.html)。我认为CookieRequestContext可能是不可修改的。您可能需要手动设置“Cookie”标头。 –
顺便说一句,从响应该cookie地图返回'NewCookie's。这只是从服务器到客户端。客户端到服务器应该使用'Cookie'。你可以通过调用'newCookie.toCookie()'把'NewCookie'变成'Cookie'。 https://stackoverflow.com/q/34046292/2587435 –