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
