1

ElasticSearchなどのGETリクエストのハンドラー/コントローラーを作成したい:

$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?routing=kimchy' -d '{
"query": {
    "filtered" : {
        "query" : {
            "query_string" : {
                "query" : "some query string here"
            }
        },
        "filter" : {
            "term" : { "user" : "kimchy" }
        }
    }
}}

http://www.playframework.org/documentation/2.0.4/ScalaJsonRequestsからドキュメントを読みましたが、例はPOSTリクエストに基づいています。自分で試してみましたが、POSTリクエストでbodyリクエストにアクセスできるようです。しかし、GETリクエストを試してみると、request.bodyはAnyContentAsEmptyです。

Play 2.0でこのリクエストからjsonを処理する方法はありますか?


GET: HTTPリクエストメソッドのペイロードにはボディセマンティクスがないことがわかりました。したがって、Play2.0を介してこれに対処するメカニズムがないのは正常なことかもしれません。

4

2 に答える 2

1

各タイプのリクエストで何が期待できるかについて、あなたは混乱していると思います。要約すると:

  1. GETリクエストには URL にペイロードが含まれ、リクエスト本文は追加されません
  2. POSTリクエストはペイロードをリクエスト本文に追加します

あなたが投稿した例から、GETリクエストの結果としてJsonの回答を返したいようです。これはより理にかなっています。

これは、Json 文字列を作成し、 を使用しOk(result).as("application/json")て応答の MIME タイプを設定することで簡単に実現できます。

于 2012-10-26T11:39:14.223 に答える