zoukankan      html  css  js  c++  java
  • libcurl库进行http通讯-一些主要的函数

    这里就简介一下libcurl的一些主要的函数。

    调用curl_global_init()初始化libcurl
    调用curl_easy_init()函数得到 easy interface型指针
    调用curl_easy_setopt()设置传输选项
    依据curl_easy_setopt()设置的传输选项,实现回调函数以完毕用户特定任务
    调用curl_easy_perform()函数完毕传输任务
    调用curl_easy_cleanup()释放内存

    CURLcode curl_global_init(long flags);
    * url_global_init() should be invoked exactly once for each application that
    * uses libcurl and before any call of other libcurl functions.
    *
    * This function is not thread-safe!
    描写叙述:
    这个函数仅仅能用一次。(事实上在调用curl_global_cleanup 函数后仍然可再用)
    假设这个函数在curl_easy_init函数调用时还没调用,它讲由libcurl库自己主动调用,所以多线程下最好主动调用该函数以防止在线程中curl_easy_init时多次调用。


    注意:尽管libcurl是线程安全的。但curl_global_init是不能保证线程安全的,所以不要在每一个线程中都调用curl_global_init。应该将该函数的调用放在主线程中。
    參数:flags
    CURL_GLOBAL_ALL //初始化全部的可能的调用。
    CURL_GLOBAL_SSL //初始化支持 安全套接字层。
    CURL_GLOBAL_WIN32 //初始化win32套接字库。
    CURL_GLOBAL_NOTHING //没有额外的初始化。

    void curl_global_cleanup(void);
    * curl_global_cleanup() should be invoked exactly once for each application
    * that uses libcurl
    描写叙述:在结束libcurl使用的时候。用来对curl_global_init做的工作清理。

    相似于close的函数。
    注意:尽管libcurl是线程安全的,但curl_global_cleanup是不能保证线程安全的。所以不要在每一个线程中都调用curl_global_init,应该将该函数的调用放在主线程中。

    char *curl_version( );
    *Returns a static ascii string of the libcurl version.
    描写叙述: 打印当前libcurl库的版本号。

    CURL *curl_easy_init( );
    描写叙述:
    curl_easy_init用来初始化一个CURL的指针(有些像返回FILE类型的指针一样). 对应的在调用结束时要用curl_easy_cleanup函数清理.
    一般curl_easy_init意味着一个会话的開始. 它会返回一个easy_handle(CURL*对象), 一般都用在easy系列的函数中.

    5 void curl_easy_cleanup(CURL *handle);
    描写叙述:
    这个调用用来结束一个会话.与curl_easy_init配合着用.
    參数:
    CURL类型的指针.

    6 CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
    描写叙述: 这个函数最重要了.差点儿全部的curl 程序都要频繁的使用它.它告诉curl库.程序将有怎样的行为. 比方要查看一个网页的html代码等.(这个函数有些像ioctl函数)參数:
    1 CURL类型的指针
    2 各种CURLoption类型的选项.(都在curl.h库里有定义,man 也能够查看到)
    3 parameter 这个參数 既能够是个函数的指针,也能够是某个对象的指针,也能够是个long型的变量.它用什么这取决于第二个參数.
    CURLoption 这个參数的取值非常多.详细的能够查看man手冊.

    7 CURLcode curl_easy_perform(CURL *handle);
    描写叙述:这个函数在初始化CURL类型的指针 以及curl_easy_setopt完毕后调用. 就像字面的意思所说perform就像是个舞台.让我们设置的
    option 运作起来.參数:
    CURL类型的指针.

  • 相关阅读:
    VS20005特殊文件夹
    【Vegas原创】SQL case when 用法
    Session 详解
    How To Connect to Excel
    Visual Studio 2005下的Web Application Projects和Web Site Projects两种模型比较
    检索 COM 类工厂中 CLSID 为 {000209FF00000000C000000000000046} 的组件时失败解决方法
    【Vegas原创】GridView前台绑定HyperLink参数&自动编号
    【Vegas原创】GridView设定DataFormatString属性失效的解决方法
    【Vegas原创】TreeView操作数据库的使用方法(VB)
    【Vegas原创】VB.NET版的GridView经典使用(编辑,删除,分页,链接列)
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7138084.html
Copyright © 2011-2022 走看看