Название: QtSoap или ошибка сервиса Отправлено: sergek от Декабрь 06, 2014, 14:26 Коллеги, помогите решить проблему.
Есть программа, использующая qtsoap для взаимодействия с веб-сервисом. Несколько дней назад для одного из запросов (запрос получения метки последнего обновления) вдруг начала получать от сервиса ошибку "SOAP-ENV:VersionMismatch. SOAP structure invalid. root element "html"/"html" is not envelope". Но нерегулярно: - при первом запуске программы запрос давал ошибку, и повторяется при повторении запроса. Первый запуск - это после перезагрузки компьютера. Стабильно можно было воспроизвести в Qt Creatore при последовательности "Очистить все/qmake/пересобрать все"; - при перезапуске программы ошибка пропадает. Остальные функции сервиса работаю. Я бы отнес это на кривоту реализации веб-сервиса (есть основания), но не могу объяснить, почему перезапуск программы помогает. Такое ощущение, что при первом запуске программы некорректно выполняется подгрузка dll (например, network). Но почему нет проблем с другими запросами? В сети видел подобную проблему (http://www.qtcentre.org/threads/59390-SOAP-API-on-Qt-5-3-POST-Request-Wrong (http://www.qtcentre.org/threads/59390-SOAP-API-on-Qt-5-3-POST-Request-Wrong)), но ошибка воспроизводится на разных версиях Qt и даже на разных платформах (Win|Linux). Коллеги, в чем может быть проблема? Прикрепляю пример запроса к тестовому сервису, который сбоит. Проект вырезан из программы, все лишнее убрал. Если нужен полный проект, то он в свободном доступе, могу дать ссылку. Если будет желание, сделайте так: перезагрузите комп, соберите проект и сделайте запрос - получите ошибку (я не стал обрабатывать xml, и так в теле ответа видно). Потом повторите запрос - получите нормальный ответ (длинное число, версии сервиса, выгрузки и памятки). |