Le Wed, 02 Nov 2011 15:09:17 +0000, Graham Fawcett a écrit : > On Tue, 01 Nov 2011 18:20:25 +0000, Frédéric Galusik wrote: > >> Hi, >> >> As the curl documentation is a little bit ...wow. >> http://www.digitalmars.com/d/2.0/phobos/etc_c_curl.html >> >> Do someone have a simple example on how to download a simple file ? >> >> Thank you. > > Until the high-level bindings for curl are available in Phobos, I have a > little module you could use. > > https://github.com/gmfawcett/d-play-libcurl/blob/master/fawcett/curl.d > > The default version prints the result to stdout, and there's a commented > main() that shows how to get a callback when data is received. If you > wanted to download directly into a file, you could do this: > > import std.stdio; > import fawcett.curl; > > class FileCurl : Curl > { > this(string url, File f) { > handle = curl_easy_init(); > set(CURLoption.URL, url); > set(CURLoption.FILE, cast(void*) f.getFP); > } > > } > > void main() { > auto f = File("/tmp/stuff", "w"); > auto c = new FileCurl("http://example.com/", f); c.perform(); > } > > Note, it doesn't call super() in the constructor, which is bad form, but > the current default constructor is overkill for just downloading a file. > (It's not a production-quality curl binding.) > > Rather than putting my module in 'fawcett/curl.d', you might just want > to remove the 'module' line in 'curl.d' and put it in the same directory > as your program. > > Best, > Graham
Thank you very much, it's very interesting. Best regards. ++ fredg
