从camel交换中删除“Host”和“org.apache.cxf.request.uri”标头

时间:2014-10-27 11:15:33

标签: http-headers apache-camel cxfrs

我在从camel exchange中的In Message中删除“Host”和“org.apache.cxf.request.uri”标题时遇到问题。我正在使用cxfrs客户端来调用休息终点。但在调用之前我使用了removeHeaders标记并从交换中删除了一些不必要的标题。一些标题被删除。但是我无法删除“Host”和“org.apache.cxf.request.uri”标题。在removeHeaders调用之后,它们会暂时从流中删除。但是当使用cxf rs客户端调用时,它们出现在请求调用头中。以下是我的方案中的示例。

............................... ..............................                                  $ {property.asd} == true&& $ {property.afd} == true                             

                        **<to uri="direct:removeUnnecessaryHeaders" />**

                        <setHeader headerName="CamelCxfRsUsingHttpAPI">
                            <constant>true</constant>
                        </setHeader>

                        <setHeader headerName="CamelHttpMethod">
                            <constant>PUT</constant>
                        </setHeader>

                        <setHeader headerName="CamelHttpPath">
                            <constant>/partner/managepartnerprofile</constant>
                        </setHeader>

                        <to uri="cxfrs:bean:aclient"/>
                    </when>

.................................. .................................

**<route>
            <from uri="direct:removeUnnecessaryHeaders" />
            <removeHeaders pattern="CamelCxfRsResponseGenericType|org.apache.cxf.request.uri|CamelCxfMessage|CamelHttpResponseCode|Host" />
        </route>**

1 个答案:

答案 0 :(得分:0)

我刚做了一些测试,发现这些标题是假设告诉CXF如何使用WebClient构建请求,不应将它们视为HTTP协议标题。

如果您不想将这些标头发送到服务器,可以使用camel-http或camel-http4端点。