Проблема WSHttpBinding с Karate Framework

У нас есть веб-службы, разработанные с использованием .NET, некоторые из них используют basicHttpBinding, а некоторые - wsHttpBinding.

При использовании инфраструктуры Karate службы, использующие basicHttpBinding, выполняются нормально, но не wsHttpBinding. Получение кода ответа 415.

Те же службы, которые используют wsHttpBinding, отлично выполняются в другом инструменте, таком как SoapUI, путем выполнения следующих действий в конце SoapUI.

  • установите флажок Включить адресацию WS-A
  • установите флажок Добавить wsa по умолчанию: действие
  • установите флажок Добавить wsa по умолчанию: Кому

Тип содержимого для служб basicHttpbinding - 'text / xml', а для служб wsHttpbinding - 'application / soap + xml'.

Есть ли какое-нибудь решение, чтобы заставить его работать с помощью Karate framework.


person Raveendar Reddy    schedule 26.10.2017    source источник


Ответы (1)


Да, есть простое решение: не используйте синтаксис * soap action 'foo', а просто используйте * method post. Тогда у вас будет полная гибкость, чтобы сформировать запрос именно так, как вы этого хотите.

Особенно, если у вас работает Postman или SoapUI, просто посмотрите журнал запросов, и вам понадобится пять минут, чтобы создать эквивалент Каратэ. Надеюсь, это поможет !

Думайте о * soap action 'foo' как об удобстве, которое выполняет две дополнительные функции:

  • установите Content-Type на application/xml
  • установите метод HTTP как POST

Все остальное - это «нормальное» карате, в этом случае вам просто нужно убедиться, что полезная нагрузка XML содержит дополнительные элементы wsa:Action и wsa:To.

person Peter Thomas    schedule 26.10.2017