Решение проблемы с кодом ответа FTP-сервера BabyFTPDelphi , Интернет и Сети , FTP
При использовании встроенного FTP-сервера BabyFTP в приложении Delphi 10.1 Berlin может возникнуть проблема с кодом ответа при успешном выполнении команды MKD. В этом случае BabyFTP возвращает код 250 вместо ожидаемого по RFC и Indy кода 257. В результате TIdFTP выбрасывает исключение EIdReplyRFCError, прерывая работу приложения. Проблема заключается в том, что Indy имеет жестко зашитые в методах коды ответов, а переопределение TIdFTP не является осуществимым, так как методы не являются виртуальными. Кроме того, настройка кода ответов Indy не представляется возможной. Использование другого FTP-сервера также может привести к аналогичным проблемам. Решение Одно из возможных решений - обработать исключение EIdReplyRFCError и проверить его свойство ErrorCode. Если код ошибки равен 250, то исключение можно проигнорировать. Если же код ошибки другой, то исключение следует перевыбросить. Пример кода на Object Pascal (Delphi) представлен ниже:
Также можно воспользоваться методом SendCmd() напрямую и указать, какие коды ответа считать приемлемыми. Например, чтобы принять коды ответа 250 и 257, можно использовать следующий код:
Или принять любые коды ответа, начинающиеся с 2xx, с помощью следующего кода:
Это решение позволяет избежать исключений при работе с FTP-сервером BabyFTP и обеспечивает корректную работу приложения. Устранение проблемы с кодом ответа FTP-сервера BabyFTP в Delphi 10.1 Berlin, возвращающего код 250 вместо ожидаемого по RFC и Indy кода 257 при успешном выполнении команды MKD, что приводит к исключению EIdReplyRFCError и прерыванию работы прило Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |