zoukankan      html  css  js  c++  java
  • curl c/c++ api接口使用例程 Mr_Von的专栏 博客频道 CSDN.NET

    curl c/c++ api接口使用例程 - Mr_Von的专栏 - 博客频道 - CSDN.NET

    curl c/c++ api接口使用例程


    2761人阅读
    评论(0)
    收藏
    举报

    先总结一下本站与curl相关的文章:

    linux下php扩展cURL的安装
    cURL 中文用户手册(一)
    cURL中文用户手册(二)
    curl中文用户手册(三)

    [转帖] php cURL函数扩展文档
    php cURL扩展使用的例子
    用curl下载大文件

     除以上这些curl也提供一套网络c/c++ api的使用接口,以下是一个源代码例程:

    来源:http://bbs.chinaunix.net/viewthread.php?tid=586014

    前两天看到有人求客户端socket 发HTTP包的代码,受flw版主启发找了一些perl的资料,不过对perl 还是不太熟悉。也没有深入的
    研究。无意中发现了libcurl.so 这个库。去google上搜索发现它是处理客户端发送HTTP请求的库 以及可以处理web服务器回送回来的
    包。研究了两天将研究的成果,共享出来给大家一起研究。

    参考:http://curl.haxx.se/  这是curl开发者的首页。

    利用libcurl.so库 我们能轻松的连接某个web站点。获得某个首页的html代码 或者是http 请求的头部。 还可以提交表单,
    此外它还支持ftp,https,

    /usr/include/curl/curl.h 中。

    1 CURLcode curl_global_init(long flags);

    描述:
    这个函数只能用一次。(其实在调用curl_global_cleanup 函数后仍然可再用)
    如果这个函数在curl_easy_init函数调用时还没调用,它讲由libcurl库自动完成。

    参数:flags

    CURL_GLOBAL_ALL    //初始化所有的可能的调用。
    CURL_GLOBAL_SSL    //初始化支持 安全套接字层。
    CURL_GLOBAL_WIN32  //初始化win32套接字库。
    CURL_GLOBAL_NOTHING     //没有额外的初始化。


    2 void curl_global_cleanup(void);

    描述:在结束libcurl使用的时候,用来对curl_global_init做的工作清理。类似于close的函数。

    3 char *curl_version( );

    描述: 打印当前libcurl库的版本。


    4 CURL *curl_easy_init( );

    描述:
    curl_easy_init用来初始化一个CURL的指针(有些像返回FILE类型的指针一样). 相应的在调用结束时要用curl_easy_cleanup函数清理.
    一般curl_easy_init意味着一个会话的开始. 它的返回值一般都用在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类型的指针.

     下面来看一个简单的例子:
    用来获得某个主页的html代码

    #include <stdio.h>;
    
    #include <curl/curl.h>;
    
    #include <stdlib.h>;
    
    
    
    int main(int argc, char *argv[])
    
    {
    
        CURL *curl;			//定义CURL类型的指针
    
        CURLcode res;		//定义CURLcode类型的变量
    
    
    
        if(argc!=2)
    
        {
    
            printf("Usage : file <url>;/n");
    
            exit(1);
    
        }
    
    
    
        curl = curl_easy_init();	//初始化一个CURL类型的指针
    
        if(curl!=NULL)
    
        {
    
    	//设置curl选项. 其中CURLOPT_URL是让用户指定url. argv[1]中存放的命令行传进来的网址
    
            curl_easy_setopt(curl, CURLOPT_URL, argv[1]);	
    
    	//调用curl_easy_perform 执行我们的设置.并进行相关的操作. 在这里只在屏幕上显示出来.
    
            res = curl_easy_perform(curl);
    
    	//清除curl操作.
    
            curl_easy_cleanup(curl);
    
        }
    
        return 0;
    
    }



    编译: gcc -o 001 -Wall 001.c -lcurl

  • 相关阅读:
    网络基础 03 交换机基本原理与配置
    网络基础 02 网络布线与数制转换
    C#操作excel(读取excel里的图片并show在页面上)
    让IIS支持中文文件名和目录
    Asp.net中防止用户多次登录的方法
    【转摘】一道关于实例化顺序的C#面试题
    选项卡调其他窗体方法
    同一个工作组的计算机能ping通不能访问对方共享资源
    Combobox出现System.Data.DataRowView的原因,以及指定ValueMember的时机问题
    无法嵌入互操作类型“Microsoft.Office.Interop.Excel.ApplicationClass”。请改用适用的接口。
  • 原文地址:https://www.cnblogs.com/lexus/p/2437447.html
Copyright © 2011-2022 走看看