packages feed

ihttp-0.3.0: Test.hs

-- |
-- Module:     Main
-- Copyright:  (c) 2010 Ertugrul Soeylemez
-- License:    BSD3
-- Maintainer: Ertugrul Soeylemez <es@ertes.de>
-- Stability:  experimental
--
-- ihttp test program.

{-# LANGUAGE OverloadedStrings #-}

module Main where

import qualified Data.ByteString.Char8 as BC
import qualified Data.Map as M
import Control.ContStuff
import Data.Enumerator as E
import Data.Enumerator.Binary as EB
import Data.Enumerator.NetLines
import Network
import Network.IHttp
import System.IO


main :: IO ()
main = do
    h <- connectTo "127.0.0.1" (PortNumber 80)
    hSetBuffering h NoBuffering
    run_ $ enumHandleSession 4096 60000 60000 h $$ do
        resp <- okRequest defHttpConfig h (mkGetRequest "ertes.de" "/")
        liftIO (print resp)
        cnt <- maybe EB.consume EB.take $ do
                   lenStr <- M.lookup "CONTENT-LENGTH" (responseHeaders resp)
                   (len, _) <- BC.readInteger lenStr
                   return len
        liftIO (print cnt)
    hClose h