Skip to content
Snippets Groups Projects
README.libcurl 2.42 KiB
Newer Older
                         _ _ _                     _ 
                        | (_) |__   ___ _   _ _ __| |
                        | | | '_ \ / __| | | | '__| |
                        | | | |_) | (__| |_| | |  | |
                        |_|_|_.__/ \___|\__,_|_|  |_|


Daniel Stenberg's avatar
Daniel Stenberg committed
                     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.

Daniel Stenberg's avatar
Daniel Stenberg committed
The Easy Interface
Daniel Stenberg's avatar
Daniel Stenberg committed
 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.
 You continue by setting all the options you want in the upcoming transfer,
Daniel Stenberg's avatar
Daniel Stenberg committed
 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.
Daniel Stenberg's avatar
Daniel Stenberg committed
 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.
 After the transfer has been made, you cleanup the easy-session's handle and
 libcurl is entirely off the hook!
Daniel Stenberg's avatar
Daniel Stenberg committed
        curl_easy_init() 
        curl_easy_setopt() 
        curl_easy_perform() 
        curl_easy_cleanup() 
 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!