From c4eb771fa09e3972106d80ada6b3c4a023b85249 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 30 Aug 2015 21:17:27 +0200 Subject: Fetch perfumes according to multiple materials --- src/HTTP.hs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/HTTP.hs (limited to 'src/HTTP.hs') diff --git a/src/HTTP.hs b/src/HTTP.hs new file mode 100644 index 0000000..6ba153d --- /dev/null +++ b/src/HTTP.hs @@ -0,0 +1,23 @@ +module HTTP + ( getPage + ) where + +import Control.Exception (SomeException, try) +import Control.Arrow (left) + +import Data.Text (Text) +import qualified Data.Text as T +import qualified Data.Text.IO as T + +import Network.HTTP (simpleHTTP, getRequest, getResponseBody) + +import Model.URL + +import Codec.Binary.UTF8.String (decodeString) + +getPage :: URL -> IO (Either Text Text) +getPage url = + left (T.pack . show) <$> (try (unsafeGetPage url) :: IO (Either SomeException Text)) + +unsafeGetPage :: URL -> IO Text +unsafeGetPage url = simpleHTTP (getRequest (T.unpack url)) >>= (\x -> T.pack . decodeString <$> getResponseBody x) -- cgit v1.2.3