Hi Mike,

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 using haskell stack tool:

➜  ~  stack install wreq
...
➜  ~  stack ghci
Run from outside a project, using implicit global config
Using resolver: lts-3.5 from global config file: /Users/kb/.stack/global/stack.yaml
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@yahoo.co.uk> wrote:
Hi,

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
http://x.y.z/files/myfile.jpg

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.

Mike

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners