路径中的非法字符修复?

时间:2016-01-04 11:50:31

标签: mule

我有一个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>

但它似乎无法接听用户并通过。

是否有解决方法或如何实现这一目标?

由于

1 个答案:

答案 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>