![]() |
![]() ![]() ![]() ![]() |
|
Решение проблемы с символом "#" в 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 | ||||