import Network.URI import System.Environment (getArgs) import Data.Maybe (fromMaybe) import System.IO import HTTP import Browser import Network (withSocketsDo) main :: IO () main = withSocketsDo $ catch (do { h <- openFile "mylog.log" WriteMode ; args <- getArgs ; if null args then putStrLn "Web page argument required!" else catch (browse $ fn h (head args)) (\e -> hClose h) }) (\e -> putStrLn ("Exception!: " ++ show e)) where myRequest u = let uri = fromMaybe (error "Nothing from url parse") (parseURI u) in defaultGETRequest uri fn h arg = do setOutHandler (hPutStrLn h) setCookieFilter (\_ _ -> return True) let rq = myRequest arg rsp <- request rq ioAction $ hFlush h out (rspBody $ snd rsp)