c libcurl 基本使用

来源:互联网 发布:淘宝卖土特产前景分析 编辑:程序博客网 时间:2024/06/05 15:37

Ubuntu安装Curl的方法

 sudo apt-get install curl libcurl3 libcurl3-dev php5-curl


使用curl

gcc demo01.c -o demo01 -lcurl

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <curl/curl.h>#include <curl/easy.h>size_t callback_write_file(void *ptr, size_t size, size_t nmemb, void *userp){    printf("size * nmemb = %lu\n",size * nmemb);    fwrite(ptr,size,nmemb,(FILE *)userp);    return size * nmemb;     //必须返回这个大小, 否则只回调一次, 不清楚为何.}void *func_download_file(FILE *fp){CURL *curl = NULL;CURLcode res;curl_global_init(CURL_GLOBAL_DEFAULT);curl = curl_easy_init();curl_easy_setopt(curl, CURLOPT_URL, "http://imgsrc.baidu.com/baike/pic/item/34fae6cd7b899e51b628267841a7d933c8950d33.jpg"); //设置下载的URIcurl_easy_setopt(curl, CURLOPT_TIMEOUT, 20);        //设置超时curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);        //屏蔽其它信号//curl_easy_setopt(curl, CURLOPT_HEADERDATA, 1);      //下载数据包//curl_easy_setopt(curl, CURLOPT_RANGE, "0-500");     //用于断点续传, 设置下载的分片//char buffer[MAXHEADLEN] = {0x0};curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback_write_file); //设置下载数据的回调函数curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);res = curl_easy_perform(curl);if(res != CURLE_OK){fprintf(stdout,"curl execute fail\n");}curl_easy_cleanup(curl);curl_global_cleanup();return 0;}int main(){    FILE *fp = fopen("./kaka.jpg","wb");    if(!fp)    {        fprintf(stdout,"fopen fail \n");    }    func_download_file(fp);    fclose(fp);    return 0;}


0 0
原创粉丝点击