WSO2 ESB с вызовом службы типа x-www-form-urlencoded messaage

#rest #soap #wso2 #wso2esb #wso2ei

#rest #soap #wso2 #wso2-enterprise-integrator #wso2-esb

Вопрос:

Я использовал следующий код для отправки сообщения x-www-form-urlencoded на поддерживаемый сервер.

 <endpoint xmlns="http://ws.apache.org/ns/synapse" name="FormDataReceiver">
   <http uri-template="http://www.eaipatterns.com/MessageEndpoint.html" method="post">
      <suspendOnFailure>
         <progressionFactor>1.0</progressionFactor>
      </suspendOnFailure>
      <markForSuspension>
         <retriesBeforeSuspension>0</retriesBeforeSuspension>
         <retryDelay>0</retryDelay>
      </markForSuspension>
   </http>
</endpoint>
  

Также используется следующий код API.

 <api xmlns="http://ws.apache.org/ns/synapse" name="FORM" context="/Service">
   <resource methods="POST">
      <inSequence>
         <log level="full"></log>
         <property name="name" value="Mark" scope="default" type="STRING"></property>
         <property name="company" value="wso2" scope="default" type="STRING"></property>
         <property name="country" value="US" scope="default" type="STRING"></property>
         <payloadFactory media-type="xml">
            <format>
               <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                  <soapenv:Body>
                     <root xmlns="">
                        <name>$1</name>
                        <company>$2</company>
                        <country>$3</country>
                     </root>
                  </soapenv:Body>
               </soapenv:Envelope>
            </format>
            <args>
               <arg evaluator="xml" expression="$ctx:name"></arg>
               <arg evaluator="xml" expression="$ctx:company"></arg>
               <arg evaluator="xml" expression="$ctx:country"></arg>
            </args>
         </payloadFactory>
         <log level="full"></log>
         <property name="messageType" value="application/x-www-form-urlencoded" scope="axis2" type="STRING"></property>
         <property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"></property>
         <call>
            <endpoint key="FormDataReceiver"></endpoint>
         </call>
         <respond></respond>
      </inSequence>
   </resource>
</api>
  

Но все равно это сообщение отправляется как способ вызова rest.

Я хочу что-то вроде следующего тела сообщения на резервный сервер. Это примерное сообщение должно быть отправлено через тело сообщения. Здесь я использовал приведенный пример WSO2. Я добавил ту же ссылку на wso2esb для вашего дальнейшего ознакомления. wso2. На самом деле мне нужно отправить сообщение XML= {{my_xml_message_here}}. Пожалуйста, помогите мне продолжить это. Большое спасибо.

 name=Markamp;company=wso2
  

Комментарии:

1. Какую версию ESB вы используете? 4.8.1? Кроме того, какова точная полезная нагрузка, исходящая из ESB?

2. Версия ESB — wso2ei-6.4.0

Ответ №1:

Content-Type В заголовке для этого типа запроса отсутствует. Необходимо добавить:

 <header name="Content-Type" scope="transport" value="application/x-www-form-urlencoded"/>