接着我上一篇博客,今天将粗略的讲解下iOS开发中libcurl库的简单使用
1.首先需要提到的两个函数就是curl_global_init()和 curl_global_cleanup()。libcurl要用到一系列的全局常量,curl_global_init()函数就是初始化这些变量,并分配一些全局资源;curl_global_cleanup()则负责释放这些资源。不多说直接上图。
2.CURL *curl_easy_init()此函数需要最先被调用,返回CRUL easy句柄;后续其他函数调用都要用到这个句柄。
3.CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter)所有参数和选项设置都是通过这个函数完成的,它告诉libcurl怎样去进行传输。参数handle即为curl_easy_init()返回的句柄,后 面根据option的类型,设置相应的parameter值,该函数每次调用只能设置一个选项,这里列出几个常用的option,具体的option大家可以去网上搜,有很多很详细的解释。
CURLOPT_URL
字符串类型,该选项设置要处理的URL地址,该选项是进行curl_easy_perform之前唯一必须要设置的选项。
CURLOPT_WRITEFUNCTION
函数指针类型,该选项设置一个处理接收到的下载数据的回调函数,函数原型为:
size_t function( void *ptr, size_t size, size_t nmemb, void *stream);
其中,ptr指向接收到的数据,数据大小为size*nmemb,stream指向调用CURLOPT_WRITEDATA选项设置的参数。
如果函数指针置为NULL,则会调用默认的函数,将数据写入到由CURLOPT_WRITEDATA指定的FILE*中。
等等。。。网上资源太多,这里我就不给大家一一介绍了。不仅option,还有libcurl支持3种不同的接口调用方式,分别是"easy"、"multi"和"share"模式,我这里只暂时介绍easy。
4.CURLcode curl_easy_perform(CURL *handle)
设好工作方式后,调用该函数执行相关操作
5.void curl_easy_cleanup(CURL * handle )
该函数与curl_easy_init函数成对出现,handle即为调用curl_easy_init返回的句柄。该函数在CURL会话结束退出时调用,之后handle无效。