Каким должен быть java-код для api-гарантированного доступа для получения токена доступа - PullRequest
0 голосов
/ 03 января 2019

Я хочу получить токен доступа из данного вызова REST-API.Я проверил это в почтальоне, и он работает нормально, который требует ввода данных во все 3 вкладки (Авторизация, Заголовок и тело и необходимо запустить метод отправки).Пожалуйста, найдите приложенные скриншоты для большей наглядности.Пожалуйста, объясните мне, как автоматизировать это с помощью библиотеки java и jayaway или любого другого решения.

Скриншот почтальона - вкладка авторизации

Снимок экрана почтальона - вкладка Заголовок

Снимок экрана почтальона - вкладка "Тело"

Примечание. Имя пользователя и пароль различаются при авторизации и различаются на вкладке "Тело"

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Предполагая, что ваш ответ будет выглядеть так:

{"token_type":"bearer","access_token":"AAAA%2FAAA%3DAAAAAAAA"}

Вы можете попробовать следующий пример: Ass 100:

JsonPath jsonPath = RestAssured.given()
    .auth().preemptive().basic("username", "password")
    .contentType("application/x-www-form-urlencoded")
    .formParam("username", "johndoe")
    .formParam("password", "12345678")
    .formParam("grant_type", "password")
    .formParam("scope", "open_d")
    .when()
    .post("http://www.example.com/oauth2/token")
    .then()
    .statusCode(200)
    .contentType("application/json")
    .extract().jsonPath();

String tokenType = jsonPath.getString("token_type");
String accessToken = jsonPath.getString("access_token");
0 голосов
/ 03 января 2019
RestAssured.baseURI = "http://URI";
Response res = given().header("Content-Type", "application/json")
                .body("{" + "   \"username\":\"yourmail@something.com\"," + "   \"password\":\"ab@1234\""
                        + "}")
                .when().post("/api/token").then().log().all().assertThat().statusCode(200)
                .contentType(ContentType.JSON).extract().response();
String responseString = res.asString();
System.out.println(responseString);
JsonPath js = new JsonPath(responseString);
String str = js.get("data.access_token");
System.out.println(str);
...