[Haskell-beginners] File download using wreq.
k-bx at k-bx.com
Mon Oct 5 08:18:43 UTC 2015
First, if you don't know how wreq acts when it gets invalid url – I suggest
just launching repl and checking that out. I'll show how to do that
stack tool <https://github.com/commercialhaskell/stack>:
➜ ~ stack install wreq
➜ ~ stack ghci
Run from outside a project, using implicit global config
Using resolver: lts-3.5 from global config file:
Configuring GHCi with the following packages:
GHCi, version 7.10.2: http://www.haskell.org/ghc/ :? for help
λ import Network.Wreq
λ get "nonvalid"
*** Exception: InvalidUrlException "nonvalid" "Invalid URL"
You see, it throws InvalidUrlException upon request, which you can catch
and render an error.
Now, to get content, as per tutorial, just do:
λ import Control.Lens
λ res <- get "http://i.imgur.com/f0IKpky.png"
λ res ^. responseBody
... (long binary response goes into your output) ...
That's it. Last thing I should mention – errors which can be thrown are all
just HttpException type. Go and see possible ones
some of which you might want to handle specifically, while others just in a
generic "something bad happened" error.
Hope this helps.
On Sun, Oct 4, 2015 at 6:18 PM, Mike Houghton <mike_k_houghton at yahoo.co.uk>
> Please can someone explain how,using the wreq package, I can download and
> save a binary file?
> Say the file is at the end of
> and it is a jpeg and no authentication is needed.
> I just want to
> 1. Check that the URL is syntactically correct - flag and error if not
> 2. If the URL is syntactically ok then download the file using GET.
> 3. Check that the response code is 200 and if so save the file
> 3a. if the response code is not 200 then delegate to an error handling
> function or some simple idiomatic way of error handling.
> Thanks once again.
> Beginners mailing list
> Beginners at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners