1
{-# 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 매개 변수를 검사하려고 노력하고 있습니다. 위 코드를 실행하면 어떻게됩니까?reqGetParams (Yesod)를 어떻게 올바르게 사용합니까?
$ 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"
내가 뭘 잘못하고 있니? 고맙습니다!
'curl --data'는 POST를 통해 params를 보내고, reqGetParams는 URL로 전달 된 params를 제공합니다. 예 : "localhost : 3000? foo = bar". Yesod는 POST 데이터에 액세스하는 방법을 알려주지는 못합니다. –