{-# LANGUAGE TemplateHaskell, QuasiQuotes, OverloadedStrings #-}
{-# LANGUAGE MultiParamTypeClasses, TypeFamilies #-}
import Yesod
import Control.Monad (void)
data Foo = Foo
mkYesod "Foo" [parseRoutes|
/ FooR POST
|]
instance Yesod Foo
-- Always prints "".
postFooR = void $
getRequest >>= liftIO . print . ("Params :" ++) . concatMap show . reqGetParams
main = warp 3000 Foo
私はいくつかの Yesod チュートリアルに取り組んでいますが、POST パラメーターを調べようとして行き詰まっています。上記のコードを実行すると、次のようになります。
$ runhaskell foo.hs
$ curl --data "foo=bar" localhost:3000
14/Jul/2013:15:01:51 -0700 [Info#yesod-core] Application launched @(yesod-core-1.2.3:Yesod.Core.Dispatch ./Yesod/Core/Dispatch.hs:129:11)
"Params: "
127.0.0.1 - - [14/Jul/2013:15:02:07 -0700] "POST / HTTP/1.1" 200 - "" "curl/7.30.0"
私は何を間違っていますか?ありがとうございました!