tighttp-0.0.0.0: examples/post.hs
{-# LANGUAGE PackageImports #-}
import Control.Monad
import "monads-tf" Control.Monad.Trans
import System.Environment
import Data.Pipe
import Network
import Network.TigHTTP.Client
import Network.TigHTTP.Types
import qualified Data.ByteString.Char8 as BSC
import qualified Data.ByteString.Lazy as LBS
main :: IO ()
main = do
addr : pth : msgs <- getArgs
let msg = LBS.fromChunks $ map BSC.pack msgs
h <- connectTo addr $ PortNumber 80
r <- request h $ post addr 80 pth
(Just . fromIntegral $ LBS.length msg, msg)
void . runPipe $ responseBody r =$= (printP `finally` putStrLn "")
printP :: MonadIO m => Pipe BSC.ByteString () m ()
printP = await >>= maybe (return ()) (\s -> liftIO (BSC.putStr s) >> printP)