![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Решение проблемы с символом "#" в TIdHTTPDelphi , Интернет и Сети , URLЗаголовок: Описание проблемы: При использовании компонента TIdHTTP для отправки HTTP-запроса к IP-камерам Grandstream с логин-паролем в URI, содержащим символ "#", authentication не проходит. Символ "#" нужно кодировать как "%23", но Indy почему-то не отправляет логин-пароль в URI, что приводит к ошибке аутентификации. Подтвержденный ответ: Проблема была решена путем отправки двух последовательных запросов Get. После сравнения пакетов, отправляемых браузером и Indy, было обнаружено, что браузер всегда отправляет первый запрос без учетных данных, а затем идентичный запрос с учетными данными. Indy отправляет только один запрос, но если отправить еще один запрос сразу после первого, аутентификация проходит успешно. Таким образом, запрос должен выглядеть следующим образом:
Конечно, это должно быть в порядке "Если первый запрос не авторизован, отправьте второй запрос с учетными данными". Пример кода на Object Pascal (Delphi):
В данном примере создается экземпляр TIdHTTP, который отправляет два последовательных запроса к указанному URI. Если первый запрос не авторизован, второй запрос отправит логин-пароль, что приведет к успешной аутентификации. Вопрос о решении проблемы с символом '#' в TIdHTTP при отправке HTTP-запроса к IP-камерам Grandstream с логин-паролем в URI. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |