WSO2 ESB - 请求后的错误响应 - 内容类型application / x-www-form-urlencoded

问题描述 投票:0回答:3

我正在使用WSO2 EI 6.3v。我想将application / x-www-form-urlencoded数据传递给rezlive酒店供应商。听到我把我的代码和响应。

<inSequence>
        <log category="WARN" level="full">
            <property name="API BEGIN" value="Test_Supplier API"/>
        </log>
        <payloadFactory media-type="xml">
            <format>
                <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                    <soapenv:Body>
                        <HotelFindRequest xmlns="">
                            $1
                        </HotelFindRequest>
                    </soapenv:Body>
                </soapenv:Envelope>
            </format>
            <args>
                <arg evaluator="xml" expression="$env/*[local-name()='Body']/*[local-name()='HotelFindRequest']/*"/>
            </args>
        </payloadFactory>
        <property expression="$env/*[local-name()='Body']/*" name="xmlbody" scope="default" type="STRING"/>
        <log>
            <property expression="$ctx:xmlbody" name="Body======="/>
        </log>
        <property name="messageType" scope="axis2" type="STRING" value="application/x-www-form-urlencoded"/>
        <property expression="$body" name="payload" scope="default" type="STRING"/>
        <property name="uri.var.url" scope="default" type="STRING" value="http://test.xmlhub.com/testpanel.php/action/findhotel"/>
        <call>
            <endpoint>
                <address format="pox" uri="http://test.xmlhub.com/testpanel.php/action/findhotel?XML={xmlbody}"/>
            </endpoint>
        </call>
        <respond/>
</inSequence>

身体日志

<HotelFindRequest>
<Authentication>
    <AgentCode>xxxxxxx</AgentCode>
    <UserName>xxxxx</UserName>
    <Password>xxxxxx</Password>
</Authentication>
<Booking>
    <ArrivalDate>22/05/2019</ArrivalDate>
    <DepartureDate>25/05/2019</DepartureDate>
    <CountryCode>AE</CountryCode>
    <City>968</City>
    <GuestNationality>LK</GuestNationality>
    <HotelRatings>
        <HotelRating>1</HotelRating><HotelRating>2</HotelRating>
        <HotelRating>3</HotelRating><HotelRating>4</HotelRating>
        <HotelRating>5</HotelRating>
    </HotelRatings>
    <Rooms>
        <Room>
            <Type>Room-1</Type>
            <NoOfAdults>2</NoOfAdults>
            <NoOfChilds>0</NoOfChilds>
        </Room>
        <Room>
            <Type>Room-2</Type>
            <NoOfAdults>1</NoOfAdults>
            <NoOfChilds>0</NoOfChilds>
        </Room>
        <Room>
            <Type>Room-3</Type>
            <NoOfAdults>2</NoOfAdults>
            <NoOfChilds>0</NoOfChilds>
        </Room>
        <Room>
            <Type>Room-4</Type>
            <NoOfAdults>3</NoOfAdults>
            <NoOfChilds>0</NoOfChilds>
        </Room>
    </Rooms>
</Booking>

响应即将到来

<HotelFindResponse>
<error>Please provide agentcode.</error>
<error>Please provide username.</error>
<error>Please provide password.</error></HotelFindResponse>

但是我在POSTMAN中传递了相同的配置,给我正确的响应。

enter image description here

我在Postman中使用了相同的配置。我尝试了很多方法来获得回应。所有都失败了。这段代码有什么问题?请帮忙。

wso2 wso2esb wso2ei
3个回答
1
投票

你可以使用post尝试使用HTTP端点(https://docs.wso2.com/display/EI640/HTTP+Endpoint)吗?

有效负载工厂已经设置了主体,因此它应该立即工作,因为它会尝试发布它。


0
投票

尝试使用“uri.var.xmlBody”属性名称而不是简单的“xmlBody”:

<property expression="$env/*[local-name()='Body']/*" name="uri.var.xmlBody" scope="default" type="STRING"/>

<call>
        <endpoint>
            <address format="pox" uri="http://test.xmlhub.com/testpanel.php/action/findhotel?XML={uri.var.xmlBody}"/>
        </endpoint>
</call>

0
投票

你能试试吗? from here

<payloadFactory media-type="xml">
            <format>
               <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
                  <soapenv:Body>
                     <root xmlns="">
                        <XML>$1</XML>
                     </root>
                  </soapenv:Body>
               </soapenv:Envelope>
            </format>
            <args>
               <arg evaluator="xml" expression="$ctx:xmlbody"></arg>              
            </args>
         </payloadFactory>             
         <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>
<http method="post" uri-template="test.xmlhub.com/testpanel.php/action/findhotel"/>
</call>
© www.soinside.com 2019 - 2024. All rights reserved.