From fc25db7a784a73fe22ebad54f687d6c6255e9181 Mon Sep 17 00:00:00 2001 From: helq Date: Mon, 29 May 2017 00:56:15 -0500 Subject: [PATCH] Modifying tensorflow-mnist-input-data's setup to download MNIST through http proxy if necessary (#127) Changing way to download MNIST dataset from Network.HTTP.simpleHTTP to Network.Browser.browse which allows to capture the environment's proxy. --- tensorflow-mnist-input-data/Setup.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tensorflow-mnist-input-data/Setup.hs b/tensorflow-mnist-input-data/Setup.hs index e858987..4279d73 100644 --- a/tensorflow-mnist-input-data/Setup.hs +++ b/tensorflow-mnist-input-data/Setup.hs @@ -34,6 +34,7 @@ import System.Directory (doesFileExist) import qualified Crypto.Hash as Hash import qualified Data.ByteString.Lazy as B import qualified Network.HTTP as HTTP +import qualified Network.Browser as Browser import qualified Network.URI as URI main :: IO () @@ -65,9 +66,13 @@ httpDownload url outFile = do let uri = fromMaybe (error ("Can't be: invalid URI " ++ url)) (URI.parseURI url) - result <- HTTP.simpleHTTP (HTTP.defaultGETRequest_ uri) - HTTP.getResponseCode result >>= \case - (2, 0, 0) -> HTTP.getResponseBody result >>= B.writeFile outFile + (_, rsp) + <- Browser.browse $ do + Browser.setAllowRedirects True + Browser.setCheckForProxy True + Browser.request $ HTTP.defaultGETRequest_ uri + case HTTP.rspCode rsp of + (2, 0, 0) -> B.writeFile outFile $ HTTP.rspBody rsp s -> error ( "Failed to download " ++ url ++ " error code " ++ show s ++ helpfulMessage )