You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Camel 3.2.0.x:如何阻止toD URI查询参数值编码特殊字符

Apache Camel 3.2.0.x 阻止toD URI中斜杠重复编码的方法

你遇到的是Camel对URI参数的二次编码问题:当header中的参数包含斜杠(/)时,Camel会先将其编码为%2F,随后在拼接URI时又对%进行编码,最终变成%252F。要直接传递原始斜杠,可通过以下几种方式解决:

  • 使用raw()函数包裹header引用
    这是最直接的方案,raw()会强制Camel使用header的原始值,跳过自动编码逻辑。修改后的配置如下:

    <toD Uri="{{url}}&amp;parameterA=${raw(header.parameterA)}&amp;parameterB=${header.parameterB}" />
    
  • 手动解码参数(适用于已被编码的场景)
    如果header中的值已经被编码过一次,可使用decode()函数还原原始斜杠,再传递到URI中:

    <toD Uri="{{url}}&amp;parameterA=${decode(header.parameterA, 'UTF-8')}&amp;parameterB=${header.parameterB}" />
    
  • 全局关闭路径编码(不推荐)
    若需要全局禁用URI路径部分的编码,可在Camel上下文配置中添加参数org.apache.camel.uri.encode.path=false。但此方法会影响所有URI的编码逻辑,可能引发其他参数的安全性问题,仅建议在特殊场景下使用。

内容的提问来源于stack exchange,提问作者Himanshi Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:59:57