如何防止 mule 对查询参数进行编码?
How do I prevent mule from encoding the query-param?
在 HTTP 请求中,我添加了一个令牌作为查询参数。
似乎 mule 正在对值进行编码。
- 如果我添加参数,mule 将以错误的方式对其进行编码。
- 如果我添加已经编码的参数,mule 将对其进行双重编码,因此将不再可用。
所以问题是:有没有办法或解决方法来防止 mule 对 URL 查询参数进行编码?
参数示例:{AES}ZEoksxIg484magPtWwNUUQ==;iT0kI2HsqGkh%2Bdc2baW2B4dNR2vouKkWQsDTdbMP8us=
我的同事找到了一个解决方法,所以我在这里分享它。
显然,您可以在 HTTP 请求之前设置一个变量,并添加手动编码的值。我们称它为 ourTokenVariable
在我上面的例子中是 %7BAES%7DZEoksxIg484magPtWwNUUQ%3D%3D%3BiT0kI2HsqGkh%252Bdc2baW2B4dNR2vouKkWQsDTdbMP8us%3D
之后就可以直接在url路径下使用这个新建的变量了。例如:/example/someapi?someToken=[#flowvars.ourTokenVariable]
这样您就不需要再使用 uri-param
或 query-param
(其中 mule 对值进行双重编码)。该值将被取 'as is'.
在 HTTP 请求中,我添加了一个令牌作为查询参数。 似乎 mule 正在对值进行编码。 - 如果我添加参数,mule 将以错误的方式对其进行编码。 - 如果我添加已经编码的参数,mule 将对其进行双重编码,因此将不再可用。
所以问题是:有没有办法或解决方法来防止 mule 对 URL 查询参数进行编码?
参数示例:{AES}ZEoksxIg484magPtWwNUUQ==;iT0kI2HsqGkh%2Bdc2baW2B4dNR2vouKkWQsDTdbMP8us=
我的同事找到了一个解决方法,所以我在这里分享它。
显然,您可以在 HTTP 请求之前设置一个变量,并添加手动编码的值。我们称它为 ourTokenVariable
在我上面的例子中是 %7BAES%7DZEoksxIg484magPtWwNUUQ%3D%3D%3BiT0kI2HsqGkh%252Bdc2baW2B4dNR2vouKkWQsDTdbMP8us%3D
之后就可以直接在url路径下使用这个新建的变量了。例如:/example/someapi?someToken=[#flowvars.ourTokenVariable]
这样您就不需要再使用 uri-param
或 query-param
(其中 mule 对值进行双重编码)。该值将被取 'as is'.