1
0
mirror of https://github.com/tensorflow/haskell.git synced 2024-06-02 11:03:34 +02: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:
Elkin Cruz 2017-05-26 21:15:15 -05:00
parent 0603a6987b
commit b8c1f07332

View File

@ -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 -- handle HTTP redirects
Browser.setCheckForProxy True -- detect proxy if setted
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
)