ApacheCamel:如何通过智能方式使用HTTPPOST请求将参数发送到camelservlet?

ApacheCamel:如何通过智能方式使用HTTPPOST请求将参数发送到camelservlet?,http,servlets,post,parameters,apache-camel,Http,Servlets,Post,Parameters,Apache Camel,我正在编写一个路由,它可以使用camelservlet组件接收带有一些参数的TXT文件。 根据,我应该在消息头中设置参数。 但是在HTTP POST的情况下,似乎没有按照预期填充头 我发现主体包含所有请求、文件和参数 以下是内容示例: ------WebKitFormBoundaryC9GDMXt2OAHARCZj Content-Disposition: form-data; name="upfile"; filename="user.txt" Content-Type: text/plain

我正在编写一个路由,它可以使用camelservlet组件接收带有一些参数的TXT文件。 根据,我应该在消息头中设置参数。 但是在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--
有人知道通过智能方式获取参数的方法吗?
我必须在我的处理器中制作自己的解析器吗?

ericg

如果您使用HTTPPOST,那么参数确实是在消息体中设置的。也许您应该在路由中实现一个处理器,以便从主体中获取参数,并根据需要在交换头中设置这些参数


致以最诚挚的问候,

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

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 post参数。

@ericg您是如何做到的?请参阅@navaliger上的我的问题,我使用一个Tomcat容器。我构建了自己的解析器来解析主体。有关格式的详细信息,请参见。