WSO2 ESB API 将空有效负载发送到终结点



我基本上是在esb api中进行两次POST调用。第一次调用是将内容类型作为文本。下一次调用将内容类型作为应用程序/json。在这两种情况下,我都使用有效载荷调解器构建有效负载。成功执行第一次调用后,第二次调用失败。我在进行第二次调用时看到请求有效负载为空。我启用了线路日志,并在进行第二次调用时看到请求正文为空,尽管我能够打印消息上下文的 json 有效负载。如果我在这里做错了什么,请告诉我。

下面是代码第一个电话是 <payloadFactory media-type="xml"> <format> <text xmlns="http://ws.apache.org/commons/ns/payload">userName=$1&amp;password=$2&amp; domain=$3&amp;captcha=$4 </text> </format> <args> <arg evaluator="xml" expression="get-property('uri.var.swmUser')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml" expression="get-property('uri.var.swmPassword1')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml" expression="get-property('uri.var.domain')" xmlns:ns="http://org.apache.synapse/xsd"/> <arg evaluator="xml"expression="get-property('uri.var.captcha')" xmlns:ns="http://org.apache.synapse/xsd"/> </args> </payloadFactory> <property name="ContentType" scope="axis2" value="text/plain"/> <property name="messageType" scope="axis2" value="text/plain"/> <header name="Accept" scope="transport" value="application/json"/> <log level="full"> <property expression="json-eval($.)" name="requestpayload" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <call> <endpoint key="swmLoginEP"/> </call> <property expression="//jsonObject//sessionId//text()" name="sessionId" xmlns:ns="http://org.apache.synapse/xsd"/> <log level="full"> <property expression="get-property('sessionId')" name="sessionId" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <property name="ContentType" scope="axis2" type="STRING" value="application/json"/> <property name="messageType" scope="axis2" type="STRING" value="application/json"/> <property expression="get-property('uri.var.key')" name="attribute" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/> <payloadFactory media-type="json"> <format>{"attributeNames": ["vehicleModelYear"]} </format> <args> <arg evaluator="xml" expression="get-property('attribute')" xmlns:ns="http://org.apache.synapse/xsd"/> </args> </payloadFactory> <property name="ContentType" scope="axis2" type="STRING" value="application/json"/> <property name="messageType" scope="axis2" type="STRING" value="application/json"/> <header name="Accept" scope="transport" value="application/json"/> <header expression="get-property('sessionId')" name="sessionId" scope="transport" xmlns:ns="http://org.apache.synapse/xsd"/> <log level="full"> <property expression="json-eval($.)" name="request payload of get values" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <log> <property expression="$body" name="PAYLOAD" xmlns:ns="http://org.apache.synapse/xsd"/> </log> <call> <endpoint key="swmAttributeValuesEP"/> </call>

第二次调用正在向终结点发送空请求有效负载

谢谢阿齐姆

可能是查询是通过GET而不是POST完成的(可以解释空正文)。例如,您是否尝试明确指出要使用这样的帖子

<property description="Force Post" name="HTTP_METHOD" scope="axis2"
  type="STRING" value="POST"/>

最新更新