【发布时间】:2018-04-15 17:32:50
【问题描述】:
我有一个带有一些测试的 Spring Boot 应用程序。应用程序的“快乐路径”要求用户发送请求以启动会话,然后它可以向其他服务发出其他请求。
我正在尝试测试这些其他服务,但我需要先启动一个会话。我的心态是这样的:
- 点击会话开始端点
- 从该请求中获取会话 cookie
- 在测试期间发出的未来请求中添加该 cookie。
为了实现这一点,我搞砸了:
String s = t.postForEntity(loginUrl, remoteSessionPacket, String.class)
.getHeaders()
.get("Set-Cookie").get(0);
String[] split = s.split(";");
String sessionId = "";
for (String s1 : split) {
if(s1.contains("SESSION"))
{
sessionId = s1;
}
}
HttpHeaders headers = new HttpHeaders();
headers.add("SESSION", sessionId);
HttpEntity<?> httpEntity = new HttpEntity<>(headers);
RemoteDTOPacket= new RemoteDTOPacket();
packet.Token = UUID.randomUUID().toString();
String url = "http://localhost:" + port + "/domain/SomeFunction";
ResponseEntity<ResponsePacket> response = t.postForEntity(url, packet, ResponsePacket.class, httpEntity);
Assert.assertEquals(0, (long) response.getBody().count);
显然,这是行不通的,并且会抛出错误。
有人知道如何完成我想做的事情吗?
非常感谢任何帮助。
【问题讨论】:
标签: java spring session spring-boot cookies