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 ポスト パラメータを取得できますが、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 に答える
1

エリック、

HTTP POST を使用する場合、パラメーターは実際にメッセージ本文に設定されます。ルートにプロセッサーを実装して、本体からパラメーターを取得し、必要に応じて交換ヘッダーに設定する必要があるかもしれません

よろしくお願いします、

于 2013-06-03T09:16:59.393 に答える