Java 发送到HTTP后,驼峰正文为空

Java 发送到HTTP后,驼峰正文为空,java,apache-camel,Java,Apache Camel,使用HTTP组件,Camel似乎将主体替换为HTTP响应主体。我想在发送后记录我发送的正文。以下带有streamCaching()的内容不起作用,似乎已被响应正文所取代: from("direct:in") .streamCaching() .to("https://myEndpoint") .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${body}&qu

使用HTTP组件,Camel似乎将主体替换为HTTP响应主体。我想在发送后记录我发送的正文。以下带有
streamCaching()
的内容不起作用,似乎已被响应正文所取代:

from("direct:in")
    .streamCaching()
    .to("https://myEndpoint")
    .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${body}")
还尝试了
ignoreResponseBody
。同样的结果:

from("direct:in")
    .streamCaching()
    .to("https://myEndpoint?ignoreResponseBody=true")
    .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${body}")
from("direct:in")
    .streamCaching()
    .to("https://myEndpoint?ignoreResponseBody=true")
    .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${in.body}")
最后,因为Camel的文档说它将
exchange.out
的主体设置为http响应主体,所以我尝试了
${in.body}
,得到了相同的结果:

from("direct:in")
    .streamCaching()
    .to("https://myEndpoint?ignoreResponseBody=true")
    .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${body}")
from("direct:in")
    .streamCaching()
    .to("https://myEndpoint?ignoreResponseBody=true")
    .log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${in.body}")

有人能帮忙解释一下吗?

您可以将bod存储在标题中,例如:

from(“direct:in”)
.streamCaching()
.setProperty(“MyBody”).body()
.至(”https://httpbin.org/post")
.log(${exchangeProperty.MyBody})

这样您就可以访问发送的正文和服务的答复。

这不会导致正文头被设置为HTTP端点吗?是的,但这只是举个例子,您可以复制到未考虑的属性,或使用自定义标题筛选器策略复制到未考虑的属性是什么意思?你能展示一下吗?我的意思是将值存储在交易所的属性中,而这些属性不是通过网络发送的。因此,将.setProperty(“MyBody”).body()替换为.setHeader(“MyBody”).body()哦,好吧,如果您想将其更改为该值,我将接受您的答案