apache-camel:http 查询字符串参数作为标头?

Jun*_*ndl 3 dsl uri apache-camel query-parameters http-headers

我是骆驼的新手,更喜欢使用 Spring DSL 进行路由定义。现在我发现它令人困惑,http 查询字符串参数被命名和处理为标头,它们不是。这是骆驼的架构错误吗?

ush*_*sha 5

传入的 http 请求将作为与查询参数同名的交换头添加。

下面的例子来自骆驼文档

例如,给定一个带有 URL 的客户端请求, http://myserver/myserver?orderid=123,交换将包含一个名为 orderid 的标头,值为 123。

您可以通过CamelHttpQuery标头设置为您进行的其他 HTTP 调用设置查询参数。Exchange.HTTP_QUERY是字符串的静态常量CamelHttpQuery

例如:

from("jetty://0.0.0.0:8080/test")
    .setHeader(Exchange.HTTP_QUERY, simple("?param1=${header.param1}")
    .to("http://external-url/test")
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,我不得不使用: simple("param1=${header.param1}",没有问号。 (3认同)