0

我正在编写一个可能使用 Camel Servlet 组件接收带有一些参数的 TXT 文件的路由。根据Camel 文档,我应该在消息的标题中设置参数。但在 HTTP POST 的情况下,似乎没有按预期填充标头。
我发现正文包含所有请求、文件和参数。

以下是内容示例:

------WebKitFormBoundaryC9GDMXt2OAHARCZj
Content-Disposition: form-data; name="upfile"; filename="user.txt"
Content-Type: text/plain
hello world...
...
------WebKitFormBoundaryC9GDMXt2OAHARCZj 
Content-Disposition: form-data; name="userdata" testtest 
------WebKitFormBoundaryC9GDMXt2OAHARCZj 
Content-Disposition: form-data; name="id" 12344 
------WebKitFormBoundaryC9GDMXt2OAHARCZj--

有人知道通过智能方式获取参数的方法吗?
我必须在我的处理器中制作自己的解析器吗?

4

2 回答 2

1

埃里克,

如果使用 HTTP POST,参数确实是在消息体中设置的。也许您应该在您的路由中实现一个处理器以从正文中获取参数并将它们设置在交换标头中(如果您需要的话)

此致,

于 2013-06-03T09:16:59.393 回答
1

在camel中我们可以获取HTTP post参数,我不确定是否获取Content-Disposition。如果我们想获得 Content-Disposition,我们可以编写自己的处理器方法。但肯定可以得到参数,你提到的正文内容就是你上传的文件内容。

from(HTTP_INBOUND_URL)
        .log("The message : ${in.body}")
        .doTry()
                .process(new Processor() {
                    @Override
                    public void process(Exchange exchange) throws Exception {
                        // TODO Auto-generated method stub

                        String templateId = exchange.getIn().getHeader("templateId",
                                String.class);
}
})

其中 templateId 是您的 HTTP 发布参数。

于 2016-07-30T06:54:13.180 回答