如何读取响应 RESTEasy 客户端时返回的 Cookie?
How Can I Read Cookies Coming Back in the Response to a RESTEasy Client?
我正在使用 RESTEasy Proxy 客户端,并使用以下代码对其进行实例化。
final ResteasyClient client = new ResteasyClientBuilder().build();
final ResteasyWebTarget target = client.target(pUrl);
mClient = target.proxy(FooClientProxy.class);
其中 FooClientProxy
是我的代理接口。
FooClientProxy
定义了一个login
方法,如下
@POST
@Path("/foo/login/{username}/{password}")
public abstract void login(@PathParam("username") String pUsername, @PathParam("password") String pPassword);
登录后,使用 mClient.login(pUsername, pPassword);
,我想看看在响应中返回了哪些 cookie。
有什么方法可以询问代理客户端以读取响应中的 cookie?
我认为您可以在应该能够访问 cookie 的地方注入 HttpSession 请求:
@POST
public String someRestCall(Postdata postdata, @Context HttpServletRequest request) {
System.out.println(request.getCookies());
}
分别针对您的情况
@POST
@Path("/foo/login/{username}/{password}")
public abstract void login(@PathParam("username") String pUsername, @PathParam("password") String pPassword, @Context HttpServletRequest request);
我不是 100% 确定,因为我不能在这里测试,但我很确定:-)
为什么你的登录方式是void
?如果你想 return 一个 Response
你可以像这样阅读 Cookie:
mClient = target.proxy(FooClientProxy.class);
Response response = mClient.login(user, pw);
NewCookie cookie = response.getCookies().get(cookieName);
我正在使用 RESTEasy Proxy 客户端,并使用以下代码对其进行实例化。
final ResteasyClient client = new ResteasyClientBuilder().build();
final ResteasyWebTarget target = client.target(pUrl);
mClient = target.proxy(FooClientProxy.class);
其中 FooClientProxy
是我的代理接口。
FooClientProxy
定义了一个login
方法,如下
@POST
@Path("/foo/login/{username}/{password}")
public abstract void login(@PathParam("username") String pUsername, @PathParam("password") String pPassword);
登录后,使用 mClient.login(pUsername, pPassword);
,我想看看在响应中返回了哪些 cookie。
有什么方法可以询问代理客户端以读取响应中的 cookie?
我认为您可以在应该能够访问 cookie 的地方注入 HttpSession 请求:
@POST
public String someRestCall(Postdata postdata, @Context HttpServletRequest request) {
System.out.println(request.getCookies());
}
分别针对您的情况
@POST
@Path("/foo/login/{username}/{password}")
public abstract void login(@PathParam("username") String pUsername, @PathParam("password") String pPassword, @Context HttpServletRequest request);
我不是 100% 确定,因为我不能在这里测试,但我很确定:-)
为什么你的登录方式是void
?如果你想 return 一个 Response
你可以像这样阅读 Cookie:
mClient = target.proxy(FooClientProxy.class);
Response response = mClient.login(user, pw);
NewCookie cookie = response.getCookies().get(cookieName);