1
0
Fork 0
mirror of https://github.com/tensorflow/haskell.git synced 2025-03-23 22:25:10 +01:00

Modifying tensorflow-mnist-input-data's setup to download MNIST through http proxy if necessary ()

Changing way to download MNIST dataset from Network.HTTP.simpleHTTP to Network.Browser.browse which allows to capture the environment's proxy.
This commit is contained in:
helq 2017-05-29 00:56:15 -05:00 committed by fkm3
parent 0603a6987b
commit fc25db7a78

View file

@ -34,6 +34,7 @@ import System.Directory (doesFileExist)
import qualified Crypto.Hash as Hash import qualified Crypto.Hash as Hash
import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy as B
import qualified Network.HTTP as HTTP import qualified Network.HTTP as HTTP
import qualified Network.Browser as Browser
import qualified Network.URI as URI import qualified Network.URI as URI
main :: IO () main :: IO ()
@ -65,9 +66,13 @@ httpDownload url outFile = do
let uri = fromMaybe let uri = fromMaybe
(error ("Can't be: invalid URI " ++ url)) (error ("Can't be: invalid URI " ++ url))
(URI.parseURI url) (URI.parseURI url)
result <- HTTP.simpleHTTP (HTTP.defaultGETRequest_ uri) (_, rsp)
HTTP.getResponseCode result >>= \case <- Browser.browse $ do
(2, 0, 0) -> HTTP.getResponseBody result >>= B.writeFile outFile 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 s -> error ( "Failed to download " ++ url ++ " error code " ++ show s
++ helpfulMessage ++ helpfulMessage
) )