/
test.hs
35 lines (33 loc) · 990 Bytes
/
test.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{-# 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