cURL
Haxx ad
libcurl

curl's project page on SourceForge.net

Sponsors:
Haxx

cURL > libcurl > API > Example Source Codes

libcurl - small example snippets

All Examples

10-at-a-time.c
anyauthput.c
cacertinmem.c
certinfo.c
chkspeed.c
cookie_interface.c
curlgtk.c
curlx.c
debug.c
evhiperfifo.c
externalsocket.c
fileupload.c
fopen.c
ftp-wildcard.c
ftpget.c
ftpgetinfo.c
ftpgetresp.c
ftpupload.c
ftpuploadresume.c
getinfo.c
getinmemory.c
ghiper.c
hiperfifo.c
htmltidy.c
http-post.c
httpcustomheader.c
httpput.c
https.c
imap.c
multi-app.c
multi-debugcallback.c
multi-double.c
multi-post.c
multi-single.c
multithread.c
opensslthreadlock.c
persistant.c
pop3s.c
pop3slist.c
post-callback.c
postit2.c
progressfunc.c
resolve.c
rtsp.c
sampleconv.c
sendrecv.c
sepheaders.c
simple.c
simplepost.c
simplesmtp.c
simplessl.c
smooth-gtk-thread.c
smtp-multi.c
smtp-tls.c
synctime.c
threaded-ssl.c
url2file.c

We're gathering libcurl example source codes here. Please submit yours!

NOTE: These files are intended as examples only. In the interest of simplicity and clarity, they might not include proper error handling and might produce compiler warnings on some platforms. Real-world applications should pay more attention to these issues.

allexamples.zip contains all the example sources, roughly 100K compressed.

You can also see a list of all libcurl easy options and which example source codes that use them.

Some of the Examples

simple HTTP
simple.c shows how to get a remote web page in only four libcurl function calls.

simple HTTPS
https.c gets a single HTTPS page, while simplessl.c shows how to get a remote https page and a set of various SSL-controlling options.

get HTTP with headers separate
sepheader.c gets a web page and stores the response-headers in a separate file.

simple FTP
ftpget.c proves that getting a FTP file is just as simple.

FTP upload
ftpupload.c uploads a local file to a remote FTP server. It also renames the file after succcessful transfer.

get a remote file in memory only
getinmemory.c describes how you can use the callback system to fetch documents into a ram buffer with no file writing necessary.

HTTP PUT
httpput.c makes PUTs a local file to a HTTP server.

HTTP form POST
postit2.c shows how to build a RFC1867-style form post and send it to a HTTP server.

persistant transfers
persistant.c shows that just getting files in a sequential manner will make it use persistant connections if the remote server supports it.

multithreaded URL fetches
multithread.c starts a number of threads and retrieves one URL in each thread. This requires a working thread library.

URL fetch with GTK progress bar
curlgtk.c uses GTK and the libcurl progress callback to show a GUI progress bar while downloading.

fopen() URL
fopen.c shows how you could write an fopen()-style emulation layer to easily make your program read URLs instead of local files.

nonblocking multipart formpost
multi-post.c makes a multipart formpost using the multi interface, which makes it a non-blocking operation.

debug callback
debug.c shows how you can use the debug callback to get a full trace of all protocol data being sent/received (and more).

HTML parsing
htmltitle.cc shows how to use libxml to parse HTML retrieved with libcurl.

Using CURLOPT_SSL_CTX_FUNCTION
curlx.c uses CURLOPT_SSL_CTX_FUNCTION to set a custom callback to deal with an OpenSSL SSL_CTX * at SSL handshake time.

Doing SOAP with libcurl
SOAP example by vivtek.com

You'll also find these examples in the distribution archive, in the docs/examples directory.

donate! Page updated January 16, 2012.
web site info

File upload with ASP.NET