Linux c/c++下的curl


安装开发包
在Ubuntu/Debian上,可能为libcurl-dev或libcurl3-gnutls-dev或libcurl4-gnutls-dev;
apt-get install curl
apt-get install libcurl4-gnutls-dev

在CentOS上,可能为libcurl-devel或其他名称;
yum install curl
yum install libcurl-devel

编译并链接curl库
gcc -o test1 test1.c -lcurl 
g++ -o test2 test2.cc -lcurl 

例程
1、GET数据保存到文件(下载)
gcc -o t2 t2.c -lcurl


//t2.c
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>

int main(void)
{
    CURL *curl;
    FILE *fp;
    CURLcode res;
    char *url = "http://yue.awardspace.info/";
    char outfn[FILENAME_MAX] = "t2.txt";

    curl = curl_easy_init();//创建一个curl句柄
    if (curl)
    {
        fp = fopen(outfn, "wb");
        //设置curl选项
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);//执行curl操作
        curl_easy_cleanup(curl);//释放curl句柄
        fclose(fp);
    }
    return 0;
}

2、POST(也下载吧)
gcc -o t3 t3.c -lcurl


//t3.c
#include <stdio.h>
#include <stdlib.h>
#include <curl/curl.h>

int main(void)
{
    CURL *curl;
    FILE *fp;
    CURLcode res;
    char *url = "https://www.baidu.com/";
    char *data = "uid=yue&pass=123456";//对上述链接无效,只是示例用。
    char outfn[FILENAME_MAX] = "t3.txt";

    curl = curl_easy_init();//创建一个curl句柄
    if (curl)
    {
        fp = fopen(outfn, "wb");
        //设置curl选项
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);//参数
        curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);//自动处理302之流,不加会令人吐血。
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
        res = curl_easy_perform(curl);//执行curl操作
        curl_easy_cleanup(curl);//释放curl句柄
        fclose(fp);
    }
    return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值