${body}") .toD("${body}"-6ren">
gpt4 book ai didi

apache-camel - 使用 Camel http 处理 CachedOutputStream

转载 作者:行者123 更新时间:2023-12-04 01:58:05 25 4
gpt4 key购买 nike

嗨~我正在使用 Camel http 组件。我无法提取正文消息。

这是我的代码

.log(LoggingLevel.INFO, "ToUri ===> ${body}")
.toD("${body}")
.log(LoggingLevel.INFO, "Result ===> ${body}")
.process(new Processor() {


public void process(Exchange exchange) throws Exception {

long startTime = System.currentTimeMillis();
Message inboundMessage = exchange.getIn();


Object body = exchange.getIn().getBody();
String msg = inboundMessage.getBody(String.class);

System.out.println("body:"+body);
System.out.println("getInBody msg:"+msg);
System.out.println("getInBody body:"+body.toString());
=======================================================================
body : org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream@28936ba4
getInBody msg:
getInBody bodybodybody:org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream@28936ba4

日志是好的作品。像这样
09:56:53.523 INFO  route1 - ToUri ===> https://translation.googleapis.com/language/translate/v2?key=tesetKey&source=en&target=ja&q=hi
09:56:54.545 INFO route1 - Result ===> {
"data": {
"translations": [
{
"translatedText": "こんにちは"
}
]
}
}

我想使用 Camel 提取翻译文本。

我如何处理 CachedOutputStream,这是什么?

我搜索 Camel 文档。但无法理解。请给我一个提示来解决我的问题。

谢谢。

最佳答案

有关 CachedOutputStream 的信息,请参阅流缓存:http://camel.apache.org/stream-caching.html

要从处理器以字符串形式获取消息正文,您只需执行

 String body = exchange.getIn().getBody(String.class);

这将告诉 Camel 您希望该消息为 String它会自动转换来自 CachedOutputStream 的消息正文至 String .然后,您可以通过常规 J​​ava 代码获取所需的文本。

另请注意,您可以使用 jsonpath 来处理 json 数据并获取信息,但是它的语法可能需要一点时间来学习: http://camel.apache.org/jsonpath

关于apache-camel - 使用 Camel http 处理 CachedOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com