2000-05-22 13:35:35 -04:00
|
|
|
_ _ _ _
|
|
|
|
| (_) |__ ___ _ _ _ __| |
|
|
|
|
| | | '_ \ / __| | | | '__| |
|
|
|
|
| | | |_) | (__| |_| | | | |
|
|
|
|
|_|_|_.__/ \___|\__,_|_| |_|
|
|
|
|
|
|
|
|
|
2000-05-22 15:02:54 -04:00
|
|
|
How To Use Libcurl In Your Program
|
|
|
|
|
|
|
|
Interfaces
|
|
|
|
|
|
|
|
libcurl currently offers two different interfaces to the URL transfer
|
|
|
|
engine. They can be seen as one low-level and one high-level, in the sense
|
|
|
|
that the low-level one will allow you to deal with a lot more details but on
|
|
|
|
the other hand not offer as many fancy features (such as Location:
|
|
|
|
following). The high-level interface is supposed to be a built-in
|
|
|
|
implementation of the low-level interface. You will not be able to mix
|
|
|
|
function calls from the different layers.
|
|
|
|
|
|
|
|
As we currently ONLY support the high-level interface, the so called easy
|
|
|
|
interface, I will not attempt to describe any low-level functions at this
|
|
|
|
point.
|
|
|
|
|
|
|
|
Function descriptions
|
|
|
|
|
|
|
|
The interface is meant to be very simple for very simple
|
|
|
|
implementations. Thus, we have minimized the number of entries.
|
|
|
|
|
2000-05-26 07:59:43 -04:00
|
|
|
The Easy Interface
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-05-26 07:59:43 -04:00
|
|
|
When using the easy interface, you init your easy-session and get a handle,
|
|
|
|
which you use as input to the following interface functions you use.
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-06-14 10:08:52 -04:00
|
|
|
You continue by setting all the options you want in the upcoming transfer,
|
2000-05-26 07:59:43 -04:00
|
|
|
most important among them is the URL itself. You might want to set some
|
|
|
|
callbacks as well that will be called from the library when data is available
|
|
|
|
etc.
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-05-26 07:59:43 -04:00
|
|
|
When all is setup, you tell libcurl to perform the transfer. It will then do
|
|
|
|
the entire operation and won't return until it is done or failed.
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-06-14 10:08:52 -04:00
|
|
|
After the transfer has been made, you cleanup the easy-session's handle and
|
|
|
|
libcurl is entirely off the hook!
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-05-26 07:59:43 -04:00
|
|
|
curl_easy_init()
|
|
|
|
curl_easy_setopt()
|
|
|
|
curl_easy_perform()
|
|
|
|
curl_easy_cleanup()
|
2000-05-22 15:02:54 -04:00
|
|
|
|
2000-06-14 10:08:52 -04:00
|
|
|
While the above four functions are the main functions to use in the easy
|
|
|
|
interface, there is a series of helpful functions to use. They are:
|
|
|
|
|
|
|
|
curl_version() - displays the libcurl version
|
|
|
|
curl_getdate() - converts a date string to time_t
|
|
|
|
curl_getenv() - portable environment variable reader
|
|
|
|
curl_formparse() - helps building a HTTP form POST
|
|
|
|
curl_slist_append() - builds a linked list
|
|
|
|
curl_slist_free_all() - frees a whole curl_slist
|
|
|
|
|
|
|
|
Read the separate man pages for these functions for details!
|
|
|
|
|