我有一个https:outbound-endpoint,我正在尝试在AnypointStudio中设置路径,但由于用户名和密码使用了非法字符,因此我不允许设置完整路径。我想发布到端点并让http.request包含完整的URL
例如。我的路径是此网址https://http.testserver1.host.com:9126/TestAttempt?Username=Admin$$1&Password=0de5z_Wdfjf$54!&Content=te
我尝试过使用像此
这样的message-properties-transformer设置用户,传递和内容 <https:outbound-endpoint exchange-pattern="request-response" method="POST" doc:name="HTTPS" host="http.testserver1.host.com" port="9126" path="TestAttempt" connector-ref="HTTP_HTTPS">
<message-properties-transformer>
<add-message-property key="Username" value="Admin$$1"/>
<add-message-property key="Password" value="0de5z_Wdfjf$54!"/>
<add-message-property key="Content" value="test"/>
</message-properties-transformer>
但它似乎无法接听用户并通过。
是否有解决方法或如何实现这一目标?
由于
答案 0 :(得分:0)
您可以将<message-properties-transformer>
放在<https:outbound-endpoint ...
之前。
通过这样做,我可以正确地获取用户名和密码,尽管它们包含非法字符。以下是我的Flows示例,它适用于HTTP和HTTPS:
<flow name="senderFlow">
<http:listener config-ref="HTTP_Listener_Configuration1" path="/escape" allowedMethods="GET" doc:name="HTTPS"/>
<message-properties-transformer doc:name="Message Properties">
<add-message-property key="Username" value="Admin$$1"/>
<add-message-property key="Password" value="0de5z_Wdfjf$54!"/>
<add-message-property key="Content" value="test"/>
</message-properties-transformer>
<http:request config-ref="HTTP_Request_Configuration1" path="/escape" method="POST" doc:name="HTTPS"/>
</flow>
<flow name="receiverFlow">
<http:listener config-ref="HTTP_Listener_Configuration1" path="/escape" allowedMethods="POST" doc:name="HTTPS"/>
<logger level="INFO" doc:name="Logger"/>
</flow>
注意:对于HTTPS,您必须配置TLS / SSL。
我添加了另一个使用Mule 3.5编写的示例(使用http:outbound-endpoint)并且它正常工作。
<flow name="senderFlow" doc:name="senderFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" path="escape" doc:name="HTTP"/>
<message-properties-transformer doc:name="Message Properties">
<add-message-property key="Username" value="Admin$$1"/>
<add-message-property key="Password" value="0de5z_Wdfjf$54!"/>
<add-message-property key="Content" value="test"/>
</message-properties-transformer>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8083" path="escape" method="POST" doc:name="HTTP"/>
</flow>
<flow name="receiverFlow" doc:name="receiverFlow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8083" path="escape" doc:name="HTTP"/>
<logger level="INFO" doc:name="Logger"/>
</flow>