安装开发包
在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;
}