发送到 HTTP 后骆驼主体为空
Camel body empty after sending to HTTP
使用 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}")
最后,由于 Camel 的文档说它将 exchange.out
的正文设置为 http 响应正文,我尝试 ${in.body}
结果相同:
from("direct:in")
.streamCaching()
.to("https://myEndpoint?ignoreResponseBody=true")
.log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${in.body}")
任何人都可以帮助阐明这一点吗?
您可以将 bod 存储在 header 中,例如:
from("direct:in")
.streamCaching()
.setProperty("MyBody").body()
.to("https://httpbin.org/post")
.log("${exchangeProperty.MyBody}")
这样您就可以访问您发送的 body 以及您服务的答复。
使用 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}")
最后,由于 Camel 的文档说它将 exchange.out
的正文设置为 http 响应正文,我尝试 ${in.body}
结果相同:
from("direct:in")
.streamCaching()
.to("https://myEndpoint?ignoreResponseBody=true")
.log(LoggingLevel.INFO, LOG, EVENT_SENT_MARKER, "body - ${in.body}")
任何人都可以帮助阐明这一点吗?
您可以将 bod 存储在 header 中,例如:
from("direct:in")
.streamCaching()
.setProperty("MyBody").body()
.to("https://httpbin.org/post")
.log("${exchangeProperty.MyBody}")
这样您就可以访问您发送的 body 以及您服务的答复。