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

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

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

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

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

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

2 ответа

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);

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

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

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

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");
Другие вопросы по тегам