Разбор 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    

похоже, что мои параметры не передаются на другой сервер, или, скорее, не декодируются должным образом, поскольку ничего не возвращается.

0 ответов

Другие вопросы по тегам