packages feed

http-enumerator-0.0.1: test.hs

{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Enumerator
import Network
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
import qualified Data.ByteString.Lazy.Char8 as L8
import Data.Enumerator (consume, Iteratee)
import System.Environment (getArgs)

main :: IO ()
main = withSocketsDo $ withHttpEnumerator $ do
    let _req1 = Request
            { host = "localhost"
            , port = 80
            , secure = False
            , requestHeaders = []
            , path = "/"
            , queryString = [("foo", "bar")]
            , requestBody = L8.pack "baz=bin"
            , method = "POST"
            }
    [url] <- getArgs
    _req2 <- parseUrl url
    Response sc hs b <- http _req2 toLBS
    print sc
    mapM_ (\(x, y) -> do
        S.putStr x
        putStr ": "
        S.putStr y
        putStrLn "") hs
    putStrLn ""
    L.putStr b

toLBS :: Monad m => Iteratee S.ByteString m L.ByteString
toLBS = L.fromChunks `fmap` consume