check status

This commit is contained in:
Yann Esposito (Yogsototh) 2015-03-31 00:30:30 +02:00
parent a6e2e421c0
commit b052bcc313

View file

@ -4,6 +4,7 @@ module Main where
-- import Data.Conduit
import Network.HTTP.Conduit
import Network.HTTP.Types.Header (Header)
import Network.HTTP.Types.Status (statusIsSuccessful)
import qualified Data.ByteString.Lazy.Char8 as LZ
import qualified Data.ByteString.Char8 as B
import Data.CaseInsensitive (original)
@ -16,7 +17,7 @@ simpleHTTPWithUserAgent url user pass = do
r <- parseUrl url
let request = r {requestHeaders = [("User-Agent","HTTP-Conduit")]}
requestWithAuth = applyBasicAuth (B.pack user) (B.pack pass) request
withManager $ \manager -> httpLbs requestWithAuth manager
withManager (httpLbs requestWithAuth)
showHeader :: Header -> IO ()
showHeader (name, value) = B.putStrLn $ original name <> ": " <> value
@ -36,5 +37,9 @@ main = do
continueWithUserAndPass :: String -> String -> IO ()
continueWithUserAndPass user pass = do
response <- simpleHTTPWithUserAgent "https://api.github.com/events" user pass
LZ.putStrLn (responseBody response)
mapM_ showHeader (responseHeaders response)
if statusIsSuccessful (responseStatus response)
then do
LZ.putStrLn (responseBody response)
mapM_ showHeader (responseHeaders response)
else
putStrLn "Something went wrong"