11

http://www.playframework.com/documentation/2.1.1/ScalaHttpFiltersで説明されている単純なものに似たフィルターを作成しようとしていますが、リクエスト本文にアクセスする必要があります。以下のドキュメントには、「次に呼び出すと、Iteratee が返されます。必要に応じて、これを Enumeratee でラップして、いくつかの変換を行うことができます」と記載されています。Iteratee をラップする方法を見つけようとしているので、リクエスト本文をフィルター内の文字列として取得できるので、それもログに記録できます。

4

3 に答える 3

7

最初に知っておく必要があるのは、フィルターが呼び出されたとき、要求本文はまだ解析されていないということです。それがあなたに与える理由ですRequestHeader。body のタイプを調べ、それに応じて適切な body パーサーを呼び出す必要があります。

CSRF フィルターで本文の解析の例を見つけることができます (リクエスト本文の最初のバイトで CSRF トークンを検索できます)。

https://github.com/playframework/playframework/blob/master/framework/src/play-filters-helpers/src/main/scala/csrf.scala#L221-L233を参照してください。

それが役に立てば幸い。

于 2013-07-24T10:24:09.267 に答える
-4

アクションにルーティングするコントローラー メソッドで、単純に呼び出します。

Map<String, String[]> params = request().queryString();

これにより、パラメーターのマップが取得され、そこで呼び出すことができます

params.get("someParam")[0] 

パラメータを取得します (単一の値の場合)。パラメータがリストの場合、インデックスを無視すると、配列が返されます。

于 2013-07-24T01:32:29.397 に答える