通过wso2通过邮递员发送短信twilio

时间:2020-07-06 13:13:55

标签: wso2 twilio postman sms esb

我想通过邮递员通过Wso2 ESB(正文)向通过邮递员提交的参数向wso2序列发送和发送SMS twilio,我正在尝试通过有效负载工厂来执行,但它不起作用,它说:

<TwilioResponse>
<RestException>
    <Code>21602</Code>
    <Message>Message body is required.</Message>
    <MoreInfo>https://www.twilio.com/docs/errors/21602</MoreInfo>
    <Status>400</Status>
</RestException>

我正在使用https://api.twilio.com/2010-04-01/Accounts/AC*****************/Messages 作为将其发送到Twilio的端点 我的序列:

 <property expression="json-eval($.Body)" name="Body" scope="default"
        type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <property expression="json-eval($.To)" name="To" scope="default"
        type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <property expression="json-eval($.From)" name="From" scope="default"
        type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
    <payloadFactory media-type="json">
        <format>       {    "Body": $1,    "From": $2  ,"To": $3   }                         </format>
        <args>
            <arg evaluator="xml" expression="get-property('Body')"
                literal="false" xmlns:ns="http://org.apache.synapse/xsd"/>
            <arg evaluator="xml" expression="get-property('From')"
                literal="false" xmlns:ns="http://org.apache.synapse/xsd"/>
            <arg evaluator="xml" expression="get-property('To')"
                literal="false" xmlns:ns="http://org.apache.synapse/xsd"/>
        </args>
    </payloadFactory>
    <call>
        <endpoint key="twill2"/>
    </call>
    <send/>

和我的邮递员请求:

{
"Body":"hi dear",
"To":"+(***) *******",
"From":"+1 *******"
}

1 个答案:

答案 0 :(得分:0)

我们已经观察到,即使在请求端点中存在正文,也会返回此错误。这是由于存在额外的标头或缺少某些标头。您能否在端点呼叫之前尝试添加以下属性

<property action="remove" name="TRANSPORT_HEADERS" scope="axis2"/>
<property name="setCharacterEncoding" scope="axis2" value="false"/>
<property name="DISABLE_CHUNKING" scope="axis2" value="true"/>
<property name="ContentType" scope="axis2" value="application/json"/>

有关上述属性的更多详细信息,请参阅文档1,[2],[3],[4]。

1 -https://docs.wso2.com/display/EI660/Generic+Properties#GenericProperties-TRANSPORT_HEADERS

[2] -https://docs.wso2.com/display/EI6xx/Axis2+Properties#Axis2Properties-setCharacterEncoding

[3] -https://docs.wso2.com/display/EI660/HTTP+Transport+Properties#HTTPTransportProperties-DISABLE_CHUNKINGDISABLE_CHUNKING

[4] -https://docs.wso2.com/display/EI660/Generic+Properties#GenericProperties-ContentType

已更新

在直接调用端点时,是否可以在ESB服务器中启用连线并附加日志。请参阅博客[5],以启用连线日志。另外,请附加邮递员请求的curl命令。您可以通过选择邮递员中的代码按钮并选择卷曲来获得此效果。

enter image description here

[5] -http://lakshanigamage.blogspot.com/2015/03/how-to-enable-wire-logs-in-wso2-esbapim.html