Разбор POST тела с использованием Wai и Warp
Я пытаюсь использовать Wai и Warp для написания скромного HTTP-сервера, и я застреваю, пытаясь прочитать тела запроса POST/PUT для извлечения параметров формы. Когда я делаю следующее
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai.Handler.Warp (run)
import qualified Data.ByteString.Char8 as C
import Network.Wai.Parse (parseRequestBody, lbsSink)
import Network.Wai(Response(..))
import Network.HTTP.Types(status200)
import Blaze.ByteString.Builder
main = run 3000 app
app req = do
(params, _) <- parseRequestBody lbsSink req
let r = C.concat $ map (\(x,y) -> C.concat [x,y]) params
return $ ResponseBuilder
status200
[("Content-Type", "text/plain")]
$ fromByteString r
а потом я пытаюсь простой запрос, как
curl -o - -X POST http://localhost:3000/ -d name=toto
похоже, что мои параметры не передаются на другой сервер, или, скорее, не декодируются должным образом, поскольку ничего не возвращается.