我必须用基于cookie的身份验证向服务器发送登录请求。请求方式如下:
public Response login(String username, String password) {
Response response = client
.target(domainName + LOGIN_REST_URI)
.request(MediaType.APPLICATION_JSON)
.post(Entity.form(new Form().param("IDToken1", username).param("IDToken2", password)));
return response;
}
我在使用cookie manager时遇到问题,所以我尝试手动跟踪cookie。我尝试通过getcookies方法检索cookies作为响应:
System.out.println(response.getCookies().toString())
但它是空的。在一些测试之后,我意识到在我的登录请求之后有一些重定向(我隐藏了下面带有的url和cookies):
https://XXXXXXXXXXXXXXXXXXXXX/login
null=[HTTP/1.1 302 Moved Temporarily]
Server=[Apache-Coyote/1.1]
Pragma=[no-cache]
Date=[Thu, 17 Dec 2020 09:01:02 GMT]
...
...
AM_CLIENT_TYPE=[genericHTML]
Set-Cookie=[XXXXXXXXXXXXXXXXXXXXXXXXXXXX]
X-AuthErrorCode=[0]
Expires=[0]
X-XSS-Protection=[1; mode=block]
Content-Length=[0]
Content-Type=[text/plain; charset=UTF-8]
Location=[https://XXX/login/success]
在这个重定向之后,我收到一个200退出状态的响应,但是在头中没有cookies,这就是为什么我的response.getcookies()返回一个空结果。那么如何从第一个响应(302)中检索cookies呢?就像我说的,我在cookie管理器上有问题,所以我必须手动跟踪它们。
暂无答案!
目前还没有任何答案,快来回答吧!