Подавить тип содержимого ошибки RemObjects SOAP не ожидался

Попытка создать простой клиент, который использует веб-службу с помощью RemObjects SDK, импортировал WSDL, все хорошо, однако, когда я пытаюсь выполнить метод, возвращающий строку, я получаю следующую ошибку:

Project Project1.exe вызвал класс исключения EIdHTTPProtocolException с сообщением «HTTP / 1.1 415. Не удается обработать сообщение, поскольку тип содержимого» text / xml; charset = utf-8 'не был ожидаемым типом' application / soap + xml; charset = utf-8 '.'.

Не знаю, почему возникает это исключение, но мне нужно его обойти.


person Community    schedule 13.05.2012    source источник


Ответы (1)


Тип содержимого application / soap + xml указывает, что веб-служба использует SOAP 1.2.

Тип носителя для SOAP 1.2 изменен с text / xml, используемого в SOAP 1.1, на application / soap + xml.

(Из http://hadleynet.org/marc/whatsnew.html#S3.7.1)

Сообщение об ошибке указывает, что ваша клиентская библиотека SOAP использует SOAP 1.1 вместо SOAP 1.2. (WSDL не указывает, какая версия SOAP используется сервером, поэтому требуется «ручная» настройка.)

Убедитесь, что ваша клиентская библиотека поддерживает протокол SOAP 1.2 (который был представлен примерно в 2001 году), и активируйте его.

person mjn    schedule 13.05.2012
comment
спасибо, похоже, что служба частично 1.1 и частично 1.2 oO странная штука, кроме того, материал RemObjects переопределяет мои настройки в транспортном канале indy, способ обойти это - переопределить его перед использованием и переопределить метод SetContentType. .. - person ; 13.05.2012