1
我想使一個GET請求處理器/控制器,如在ElasticSearch:如何處理JSON有效載荷在用GET請求播放2.0 +斯卡拉
$ 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請求訪問正文請求。但是,當我嘗試使用GET請求時,我的request.body是AnyContentAsEmpty。
有沒有辦法在Play 2.0中處理這個請求中的json?
我看到GET沒有身體語義:Payloads of HTTP Request Methods。 因此,通過Play 2.0無法處理它是很正常的。
謝謝你的回答,但我想我沒有很好地解釋我的問題。我不想創建一個返回json的處理程序。我想創建一個可以從GET請求讀取json的處理程序。我的例子是elasticsearch和curl的基本例子。用json執行GET(從curl -XGET)請求到elasticsearch服務器。然後elasticsearch服務器返回搜索的json結果。也許我不明白在這種情況下curl cmd是如何工作的。我的猜測是,-d強制使用POST的請求:_-d將POST請求中的指定數據發送到HTTP服務器_ – alexgindre
正如我在本文中所說的,關於此[鏈接](http:// stackoverflow。 com/questions/978061/http-get-with-request-body)和這個[link](http://stackoverflow.com/questions/5905916/payloads-of-http-request-methods)似乎可以發送請求GET請求中的主體。因此,強烈建議避免這種事情。我錯了嗎 ? – alexgindre
@alexgindre是的,GET使用URL,POST正文。使用-d您正在執行POST請求,通過GET發送json可以通過編碼並將其添加爲參數來完成,但我相信這不是一個好選擇,更好使用POST。 –