当前位置: 首页 > 知识库问答 >
问题:

如何从blueprint(Camel-http)中动态设置HTTP方法

胡野
2023-03-14

我使用camel-apache companent camel-HTTP。我正在尝试从我的自定义头设置http方法。我用蓝图

重写进程:exchange.getout().setheader(“custom_http_method”,“get”);

    <route>
        <from uri="activemq://for_redmine" />
        <setHeader headerName="Content-Type">
            <constant>application/json; charset=utf-8</constant>
        </setHeader>
        <setHeader headerName="X-Redmine-API-Key">
            <constant>beb50ea768f5d16c96030a9dbbf3cb5c4a5ccdcd</constant>
        </setHeader>
         <setHeader headerName="CamelHttpMethod">
          <constant>${header.custom_http_method}</constant> 
         </setHeader> 
        <toD uri="${header.url}"/>
    </route>

错误:org.apache.camel.typeConversionException:由于java.lang.IllegalArgumentException:没有枚举常量org.apache.camel.http.common.httpmethods.${header.custom_http_method},将类型从类型:java.lang.String转换为所需类型:org.apache.camel.http_method值为${header.custom_http_method}时出错

据我所知,${header.custom_http_method}没有返回值。

toD uri=“${header.url}”-工作正常

共有1个答案

澹台星光
2023-03-14

在设置头CamelHttpMethod时,请尝试使用simple而不是constant

 <route>
        <from uri="activemq://for_redmine" />
        ....
         <setHeader headerName="CamelHttpMethod">
          <simple>${header.custom_http_method}</simple> 
         </setHeader> 
        <toD uri="${header.url}"/>
    </route>
 类似资料:
  • 我们在前端使用OpenWeb js库,它们需要.NET中间层在发生某些类型的错误时向它们发送特定的HTTP头状态代码。我试图做到这一点: 它有点半途而废。看截图:http状态码 http://zerogravpro.com/temp/pic.png 请注意,我在响应标头中实现了状态码400,但我确实需要请求标头中的400。相反,我得到了“200 OK”。我如何实现这一点? 我用于进行调用的 URL

  • 如何将“$ref”中的http url动态设置为url引用 在上面的url中,我想从属性文件或一些外部源动态地为每个环境选择HOST: PORT。 被称为斯威格文件:https://swagger.io/docs/specification/using-ref/

  • 我有密码 当我使用 curl http://localhost:8080/graph 当我向该URL发送一个POST请求时,我需要返回状态201,用于创建和方法POST。在这方面需要一些帮助。谢谢.

  • HTTP 通道是一种连接到服务器的方法,使用与网络服务器相同的通讯协定(http://)和相同的端口(端口 80)。这是当你的互联网服务供应商不允许直接连接,但允许创建 HTTP 连接时使用。 注意:只限于 MySQL、PostgreSQL、SQLite 和 MariaDB。 上传通道脚本 若要使用此连接方法,首先需要做的就是上传通道脚本到服务器位于的网络服务器。 注意:ntunnel_mysql

  • HTTP 隧道是一种连接到服务器的方法,使用与网络服务器相同的通讯协定(http://)和相同的端口(端口 80)。这是当你的互联网服务供应商不允许直接连接,但允许创建 HTTP 连接时使用。 【注意】仅适用于 MySQL、PostgreSQL、SQLite 和 MariaDB。 上传隧道脚本 若要使用此连接方法,首先需要做的就是上传隧道脚本到你的服务器位于的网络服务器。 【注意】点击“导出隧道脚

  • HTTP 隧道是一种连接到服务器的方法,使用与网络服务器相同的通讯协定(http://)和相同的端口(端口 80)。这是当你的互联网服务供应商不允许直接连接,但允许创建 HTTP 连接时使用。 【注意】仅适用于 MySQL、PostgreSQL、SQLite 和 MariaDB。 上传隧道脚本 若要使用此连接方法,首先需要做的就是上传隧道脚本到你的服务器位于的网络服务器。 【注意】“ntunnel