我想通过邮递员通过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 *******"
}
答案 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命令。您可以通过选择邮递员中的代码按钮并选择卷曲来获得此效果。
[5] -http://lakshanigamage.blogspot.com/2015/03/how-to-enable-wire-logs-in-wso2-esbapim.html