c/c++ CURL的应用(转别人的)

来源:互联网 发布:js形参和实参的区别 编辑:程序博客网 时间:2024/06/04 23:19

1、下载数据并保存

char url[1024] = "http://xxxxxx";

FILE *fp = fopen("xxxxx", "w");

CURL* curl_obj;
curl_obj = curl_easy_init();

//设置URL
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_URL, url);

//head
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_HEADER, true);

//超时
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_TIMEOUT, 1500);

//数据回调
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_WRITEFUNCTION, &_process_data);

//写入数据
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_WRITEDATA, fp);

//运行
return_code = curl_easy_perform(curl_api::_curl_obj);

//CURL数据回调
size_t _process_data(void *buffer, size_t size, size_t nmemb, void *user_p) {
FILE *fp = (FILE *)user_p;
size_t return_size = fwrite(buffer, size, nmemb, fp);
return return_size;
}

2、下载数据读取
char url[1024] = "http://xxxxxx";
startic char str[1024];

CURL* curl_obj;
curl_obj = curl_easy_init();

//设置URL
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_URL, url);

//head
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_HEADER, true);

//超时
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_TIMEOUT, 1500);

//数据回调
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_WRITEFUNCTION, &_process_data);

//写入数据
curl_easy_setopt(curl_api::_curl_obj, CURLOPT_WRITEDATA, str);

//运行
return_code = curl_easy_perform(curl_api::_curl_obj);

//CURL数据回调
size_t _process_data(void *buffer, size_t size, size_t nmemb, void *user_p) {
strcat((char *)user_p, (char *)buffer);
return size * nmemb;
}
0 0
原创粉丝点击