Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2 ESB-Post请求时的错误响应-内容类型应用程序/x-www-form-urlencoded_Wso2_Wso2esb_Wso2ei - Fatal编程技术网

WSO2 ESB-Post请求时的错误响应-内容类型应用程序/x-www-form-urlencoded

WSO2 ESB-Post请求时的错误响应-内容类型应用程序/x-www-form-urlencoded,wso2,wso2esb,wso2ei,Wso2,Wso2esb,Wso2ei,我正在使用WSO2 EI 6.3v。我想将application/x-www-form-urlencoded数据传递给rezlive酒店供应商。在hear中,我输入了代码和响应 代码 <inSequence> <log category="WARN" level="full"> <property name="API BEGIN" value="Test_Supplier API"/> </log&

我正在使用WSO2 EI 6.3v。我想将application/x-www-form-urlencoded数据传递给rezlive酒店供应商。在hear中,我输入了代码和响应

代码

<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>

$1

我把同样的配置放在邮递员身上。我尝试了很多方法来得到回应,但都失败了。 那个代码有什么问题?。
请提供帮助。

您可以尝试使用post使用HTTP端点()吗

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

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


你能试试这个吗


$1

我试过那种方法。但仍然没有解决办法。这是密码<代码>
正常。我认为我们应该尝试将内容类型设置为您尝试发送的内容类型。检查这个答案:也许您可以在另一个ESB版本上尝试相同的请求。就我个人而言,我使用6.1,对API端点的请求还没有问题。不幸的是,我很快就没有时间在6.3上测试它了。
uri.var.xmlBody
。这不会影响任何事情。您在写入之前尝试过吗?根据“RESTful URI…variables…”,可以在中介运行时使用名称具有“URI.var.”前缀的属性值填充
<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>
<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>
<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>