Удалите конверт из мыла из $ body перед использованием посредника Send в WSO2 - PullRequest
0 голосов
/ 17 октября 2018

Мой API получает XML с полем, которое повторяется пару раз, и выглядит так:

<Root>
  <Element>
    <Request>username=username&password=password&field3=field3&field4=field4</Request>
    <Request>username=username&password=password&field3=field3&field4=field4</Request>
  </Element>
</Root>

Использование IterateMediator Я извлекаю эти поля запроса и делаю отдельные вызовы с каждымиз них по URL-адресу, с помощью AggregatorMediator и SendMediator.

API, который я вызываю, будет принимать только одну строку одновременно со следующими метаданными:

HTTP method: POST    
Content-Type: application/x-www-form-urlencoded    
Payload: username=username&password=password&field3=field3&field4=field4

Проблема в том, что, хотя я правильно извлекаю полезную нагрузку из IterateMediator, значение $body до достижения SendMediator окружено тегами Soap Envelope.Я пытался использовать PayloadFactoryMediator для изменения значения $body, но я могу сделать это только xml или json, а не text / plain.

У вас есть идеи, как мне сделатьтело что-то еще, кроме XML или JSON?

1 Ответ

0 голосов
/ 23 октября 2018

Не могли бы вы показать свою последовательность?

".. но я могу сделать это только в формате xml или json, а не text / plain .."

Вы пробовали media-type = "текст "?

<payloadFactory media-type="text" xmlns="http://ws.apache.org/ns/synapse">
    <format>$1</format>
</payloadFactory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...