使用 Camel 将输出从 POST 流式传输到 URL

Using Camel to stream output from a POST to a URL

是否可以使用 Camel 流组件将 POST 的输出读取到 URL?类似于:<to uri="stream:url?url=http://localhost:8080/mycontext/myservlet"/> 我试过了,但没有用。我需要 post 一个 JSON 对象到一个 URL 并处理返回的巨大负载,所以我需要将它流式传输到一个文件,而不是先将它全部加载到内存中。 CAMEL DSL 中是否有替代方案,或者我应该以某种方式使用 bean,例如使用 HttpUrlConnection 进行流式传输?

只需使用 http module - 它确实支持 POST 请求,而且会在 return.

中为您提供 InputStream

只要您的路由不强制 Camel 将消息负载自动转换为 String,您就可以在处理程序中自由实施任何专有的流式处理逻辑。换句话说,确保您的处理程序,例如一个 bean 方法,在其方法签名中使用 InputStream 而不是 String