【发布时间】:2020-06-19 05:17:30
【问题描述】:
*新手放心
问题:
如何在别名标头中传递电子邮件(GET 端点所需的用户电子邮件)并从响应中获取会话 ID 和用户名 ID?
详情: [GET] users/signin 端点需要用户电子邮件和 api 密钥。
卷曲:
curl -X GET "https://SomeWebSite.com/apiservice/users/signin?challengeMethod=EMAIL" -H "accept: application/json" -H "alias: usersignin@EXAMPLE.com" -H "X-API-KEY: d5a1d56d51d651d651d51d651d6d6d1"
回应:
{
"session": "ID inside of here",
"challengename": "CUSTOM_CHALLENGE",
"challengeSentTo": "usersignin@EXAMPLE.com",
"username": "5d654d6d65dd64d66adsb6a4"
}
我的代码:
public class AuthResponseTest {
public static final String baseUri = "https://qa-mobile-app-auth-ext.clearcollateral.com/";
public static final String basePath = "/apiservice/users ";
public String[] getSignIn() {
return RestAssured
.with()
.log().all()
.header("X-API-KEY", "API KEY IN HERE")
.header("alias", "email here")
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
.baseUri(baseUri)
.basePath(basePath)
.when()
.post("/users/signin")
.then()
.log().all()
.statusCode(200)
.extract().as(String[].class);
}
@Test
public void testSignIn() {
String[] authsignin = getSignIn();
System.out.println(authsignin);
}
}
【问题讨论】:
-
你试过了吗?
.header("alias", "usersignin@EXAMPLE.com") -
@kaweesha 不,我没有。我刚试过,我相信它有效。我确实收到 405 错误。然而,这是一个好兆头。我认为这是意料之中的,因为我目前正在使用用户界面 API 服务,该服务要求您在使用我可用的端点(获取、发布、更新等)之前使用 API 密钥进行身份验证。所以我想我最初的问题得到了回答。在运行端点测试之前,我可能需要询问如何向身份验证器提供 API 密钥。
-
@kaweesha 因为 405 是针对不允许的响应状态代码的方法。我是否正确地认为,在我可以使用端点之前,我需要向身份验证器提供 API 密钥?
-
对不起,我不熟悉身份验证器。请搜索更多或根据您的要求添加另一个问题..
-
@kaweesha 我在问题 2 中添加了详细的解释,希望它有意义。
标签: rest-assured request-headers webautomation rest-assured-jsonpath rest