iOS开发之libcurl库的使用

来源:互联网 发布:excel怎么比对数据 编辑:程序博客网 时间:2024/06/06 01:13

接着我上一篇博客,今天将粗略的讲解下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无效。

如下图:
curl_easy的用法

回调函数如下:

别忘了clean_up

运行结果如下:

代码下载网址:http://download.csdn.net/detail/yq910902/9462435
欢迎留言交流指导,谢谢。

0 0