我正在使用RESTAssured进行api测试。当我使用Postman测试API登录端点时,会获得用于反伪造的Cookie,在使用该应用程序时,Postman(和浏览器)在每次调用时都会使用该Cookie。
要复制此行为以进行API测试,我可以进行身份验证的调用,但RESTAssured不会像Postman一样检索服务器发送的cookie。
如何为后续的API调用获取Cookie?
到目前为止,我已经尝试过Postman和RESTAssured,但可以灵活地使用API测试库。
httpReq = RestAssured.given().log().all();
httpReq.contentType(ContentType.URLENC.withCharset("UTF-8"));
httpReq.formParam("Email", email);
httpReq.formParam("Password", password);
httpReq.formParam("__RequestVerificationToken", substr);
Map<String, String> authCookies = response.getCookies();
当我调试并观看authCookies时,它缺少相关的防伪令牌。将authCookies添加到后续请求中会导致401错误请求。
答案 0 :(得分:1)
感谢Wilfred对getDetailedCookies()方法的评论。
在给定__RequestVerificationToken的情况下,xsrf令牌是在第一个响应中生成的,可用于包括身份验证用户的api调用在内的所有调用中。
通过身份验证后,请在各处使用包含xsrf和会话cookie的cookie。