libcurl

下载安装

用过linux的一定知道curl这个命令工具可以很方便的下载网页,文件等

curl -v http://www.baidu.com

对应的库是libcurl,可以在网上下载源码编译安装

下载地址:https://curl.haxx.se/download.html

解压,configure,make,make install即可

源码范例

以下载一个网页,保存到文件为例

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

size_t curl_write_cb(void* buf, size_t num, size_t cnt, void* userdata){
    if (!buf || !userdata)
        return 0;

    FILE* fp = (FILE*)userdata;
    fwrite(buf, num, cnt, fp);
    fprintf(stdout, "%s", (char*)buf);

    return num*cnt;
}

int main(int argc, char *argv[]){
    puts("---------------------------------");

    CURLcode code = curl_global_init(CURL_GLOBAL_DEFAULT);
    if (code != CURLE_OK){
        fprintf(stderr, "curl_init err= %d\n", code);
        exit(-1);
    }

    CURL *hCurl = curl_easy_init();

    FILE* fp = fopen("./index.html", "w");

    curl_easy_setopt(hCurl, CURLOPT_URL, "http://www.baidu.com/");
    curl_easy_setopt(hCurl, CURLOPT_WRITEFUNCTION, &curl_write_cb);
    curl_easy_setopt(hCurl, CURLOPT_WRITEDATA, fp);

    code = curl_easy_perform(hCurl);
    if (code != CURLE_OK){
        fprintf(stderr, "curl_perform failed: %d\n", code);
    }

    fclose(fp);

    curl_easy_cleanup(hCurl);
    curl_global_cleanup();

    puts("=================================");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/gg_simida/article/details/79747179