2016-08-02 4 views
0

Мне нужно вызвать REST API с открытым текстом в телеобъекте.WSO2 ESB Вызов API REST с текстовым/открытым содержимым

команда завиток

curl -X POST http://mydomain.test.corp/token -H "Content-Type: text/plain" -d "grant_type=password&username=testUName&password=123123"

дает нужный мне выход. Как я могу создать это как прокси-сервис. Я думал о посреднике полезной нагрузки, но он принимает только тип медиафайла xml/json.

Я не могу сохранить grant_type=password&username=testUName&password=123123 в прокси-сервисе xml из-за знака амперсанда, я думаю.

Любая помощь очень ценится.

Спасибо.

ответ

1

Использование полезной нагрузки посредником и построить сообщение SOAP, содержащее ваш простой текст в качестве значения этого узла: <text xmlns="http://ws.apache.org/commons/ns/payload">

Заменить & с &amp; или использовать CDATA

Укажите тип сообщения (в порядке, чтобы использовать соответствующий messageFormatter):

<property name="messageType" value="text/plain; charset=windows-1252" scope="axis2"/> 

Просто отправьте это сообщение

Полный образец:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" name="TestSOF" transports="http" startOnLoad="true" trace="disable"> 
    <description/> 
    <target> 
     <inSequence> 
     <payloadFactory media-type="xml"> 
      <format> 
       <text xmlns="http://ws.apache.org/commons/ns/payload"><![CDATA[grant_type=password&username=testUName&password=123123]]></text> 
      </format> 
      <args/> 
     </payloadFactory> 
     <property name="messageType" value="text/plain" scope="axis2" type="STRING"/> 
     <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/> 
     <send> 
      <endpoint> 
       <address uri="http://localhost:8888/MockJSP.jsp"/> 
      </endpoint> 
     </send> 
     </inSequence> 
     <outSequence> 
     <send/> 
     </outSequence> 
    </target> 
</proxy> 
+0

Большое спасибо за комментарий. Когда я использую '' полезная нагрузка идет как есть (с знаком амперсанда) 'grant_type = пароль & имя пользователя = testName & password = 123123', что приводит к ошибочному ответу. – Yasothar

+0

Вы можете попробовать с CDATA? –

+0

Привет, Джин, CDATA, также преобразующий & amp; – Yasothar

Смежные вопросы