Как исправить ошибку 401 Unauthorized при использовании API Tableau для закрытия сессии в DelphiDelphi , Синтаксис , API реализацияВ процессе работы с API сервера Tableau для бета-версии 2018.2, разработчики столкнулись с проблемой, связанной с закрытием сессии. Для этого предусмотрен RESTful API call, который осуществляет выход из сессии, используя POST-запрос с указанием учетных данных пользователя, после чего сервер возвращает токен для дальнейшего использования. Правильным протоколом безопасности при завершении сессии является отправка запроса на выход из системы, аналогично процессу аутентификации, с использованием строки кастомного аутентификационного заголовка, включающего токен. Однако, основное отличие запроса на выход из системы заключается в том, что данные для этого запроса должны быть пустыми (nil/null). Несмотря на то, что документация API не упоминает это, пример использования CURL подразумевает, что отправка POST-запроса без данных является нормальной практикой:
Попытки выполнения запроса с использованием компонента TIdHTTP и передачи пустого TStringStream или TStringList в качестве параметров POST-запроса приводят к исключению 'HTTP/1.1 401 Unauthorized'. Также, использование TWebBrowser интерфейса приводит к нежелательному запуску Internet Explorer с отображением сообщения о том, что навигация отменена, или же к отображению страницы с ошибкой 401, указывающей на неверные учетные данные. Проблема была решена после того, как в коде была добавлена строка с аутентификационной информацией и установлено свойство Шаги для решения проблемы:
Пример кода на Object Pascal (Delphi):
Важно помнить, что если вы не отправляете никаких данных в теле запроса, нет необходимости отправлять заголовок Следуя этим шагам, вы сможете успешно закрыть сессию в Tableau Server API, используя Delphi. Проблема заключается в необходимости корректного выполнения POST-запроса для закрытия сессии в API сервера Tableau через Delphi, с учетом правильного использования аутентификационного заголовка и свойства `Connection` компонента `TIdHTTP`. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: API реализация ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |