Будьте уверены, тестирование - запрос API 401 неверный запрос - PullRequest
0 голосов
/ 01 октября 2018

У меня проблема с отправкой запроса API через почтальона или Java lib "io.restassured".Когда я делаю то же действие в пользовательском интерфейсе, запрос возвращает правильный ответ, но когда я пытаюсь сделать то же самое с помощью почтового или Java-кода, я получаю:

401 Плохой запрос

Ваш браузер отправленневерный запрос.

Java-код

       public static void main(String[] args) {

        String requestUrl = "exampleBaseUrl/app/reports/api/rest/v1/graphs?context=shipper&reports_type=freights";

 Response response = RestAssured.given().relaxedHTTPSValidation().header("x-csrf-token", "18ea65e740eb0ddddadf0ef435d92564").
            when().
            get(requestUrl);
    }

Я предполагаю, что что-то не так с аутентификацией, потому что в инструментах разработчика я вижу запрос Get для CSRF_token, и это выглядит так:

конечная точка для токена:

/login?get_csrf_token

и на этот запрос я получаю следующий ответ:

{"csrf_token":"18ea65e740eb0ddddadf0ef435d92564"}

Я не уверен, как решить эту проблему, у меня также естьпопытался получить токен с помощью кода Java, отправив запрос на получение к конечной точке токена /login?get_csrf_token, и этот получил мой HTML-ответ с пустым именем пользователя и паролем.

1 Ответ

0 голосов
/ 01 октября 2018

Ошибка 401 означает, что ваш запрос не авторизован.

Для авторизации, как правило, при входе в систему вы получаете токен, который вы должны будете хранить в своем кэше / local-памяти и всякий раз, когда вы общаетесь с сервером, вы должны добавить это в заголовок вашего запроса (для вашего собственного знакомства с сервером)

Похоже, что в вашем случае вы можете получить токен от /login?get_csrf_token после входа в системуОбратите внимание, что вам не требуется авторизация для службы входа в систему.

Теперь, после получения токена с сервера, как добавить его в качестве заголовка запроса? См. Гарантированную документацию REST

...