我正在尝试通过wso2 ESB 5.0.0向需要application/x-www-form-urlencoded
格式的外部HTTP API发送请求。我找到了这篇文章:
Sending Content-Type application/x-www-form-urlencoded WSO2 ESB
它几乎可以工作,但是这个供应商也需要像这样的数组格式的参数:
to[email@email.com][message_id]=message_id
不幸的是,xml和json不允许我在xml节点名称或json键名中使用方括号构建参数。逃离%5B
%5D
也无济于事。
我也尝试过ExpandingMessageFormatter但没有成功 - 我不能构建格式良好的属性并用它的内容替换正文的消息。例如:
<property name="messageBody" scope="default" type="STRING" value="to%5Bemail%40email.com%5D%5Bmessage_id%5D=id&to%5Bemail%40email.com%5D%5Breciver_name%5D=Name%20Surname&smtp_account=2.xxx.smtp&subject=Test%20temat&html=%3Chtml%3E%3Cb%3ETEST%3C%2Fb%3E%3C%2Fhtml%3E&from=email%40email.com&from_name=xxx"/>
<payloadFactory media-type="json">
<format>"$ctx:messageBody"</format>
<args/>
</payloadFactory>
或与EnrichMediator合作:
<enrich>
<source clone="true" property="messageBody" type="property"/>
<target type="body"/>
</enrich>
请,任何建议都会有所帮助。