on wai-extra/3.0.16.0 help sign in
43 lines 1.1 kB history raw
1{-# LANGUAGE StandaloneDeriving #-}
2{-# OPTIONS_GHC -fno-warn-orphans #-}
3module HTTP (
4 sendGET
5 , sendGETwH
6 , sendHEAD
7 , sendHEADwH
8 , rspBody
9 , rspCode
10 , rspHeaders
11 , getHeaderValue
12 , HeaderName(..)
13 , mkHeader
14 ) where
16import Network.HTTP
17import Network.Stream
19sendGET :: String -> IO (Response String)
20sendGET url = sendGETwH url []
22sendGETwH :: String -> [Header] -> IO (Response String)
23sendGETwH url hdr = unResult $ simpleHTTP $ (getRequest url) { rqHeaders = hdr }
25sendHEAD :: String -> IO (Response String)
26sendHEAD url = sendHEADwH url []
28sendHEADwH :: String -> [Header] -> IO (Response String)
29sendHEADwH url hdr = unResult $ simpleHTTP $ (headRequest url) { rqHeaders = hdr }
31unResult :: IO (Result (Response String)) -> IO (Response String)
32unResult action = do
33 res <- action
34 case res of
35 Right rsp -> return rsp
36 Left _ -> error "Connection error"
38getHeaderValue :: HasHeaders a => HeaderName -> a -> Maybe String
39getHeaderValue key r = case retrieveHeaders key r of
40 [] -> Nothing
41 x:_ -> Just $ hdrValue x
43deriving instance Eq Header