0

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

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

                        **<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>**
4

1 回答 1

0

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

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

于 2014-10-31T06:42:17.717 回答