2017-02-22 61 views
0

У меня есть приложение для Windows, чтобы проверить подключение к стороннему веб-сервису.Как решить проблемы с SOAP?

Я создал ссылку на службу, используя предоставленный wsdl.

Способ работы веб-службы - это четырехэтапный процесс.

  1. Метод вызова для получения ID сессии.
  2. Метод вызова для передачи аргументов
  3. Метод вызова для выполнения аргументов.
  4. Метод вызова для получения результатов.

Теперь вот странная часть: Я могу сделать первый звонок без проблем.

Звонки 2 и 3 не работают от моего. сетевое приложение.

Я получаю сообщение об ошибке: Ошибка в десериализации тела ответного сообщения для операции 'setArguments'. Конечный элемент «Тело» из пространства имен «http://www.w3.org/2003/05/soap-envelope» ожидается. Найденный элемент 'ns: setArgumentsResponse'

Я в полной мере с этим.

Что я сделал.

  1. Я занимаюсь своим постом в Скрипалле.

    • Когда я исследую тело, все выглядит правильно.
    • Если я возьму тот же ответ, что и я, и опубликую его в Fiddler, он работает.
  2. Я пробовал это в Python.

Есть ли какие-то неясные настройки, которых я мог бы пропустить в своем приложении?

Мои выводы на шаге 1 должны доказать, что я создаю действительный запрос. Мог . NET может задохнуться от ответа?

Любые предложения будут оценены.

FYI: binding = "customBinding" Я также попробовал basicBinding и получил те же результаты.

EDIT: Я просто завернул попытку/поймать каждый метод, и когда я вызываю метод 4, я получаю результат. Таким образом, ошибка должна быть в ответе. Правильно?

+0

С тем, что вы делаете, так что вероятность возникновения проблемы сериализации меньше, чем при отправке на них. Когда вы добавили служебную ссылку, вы указали ее на адрес хоста, который вы вызываете? Насколько сложны данные, которые вы передаете им? –

+0

Метод2 (строка, строка []) См. Мое редактирование ... – PrivateJoker

ответ

0

Проблема заключается в том, что я потребляю веб-службу Java.

Я изначально добавил его как ссылку на службу, которая вызывает мои ошибки сериализации в ответе.

Я удалил эту ссылку и снова добавил веб-ссылку и, похоже, работает без ошибки сериализации.