使用libcurl 函數庫獲取網頁數據代碼

jopen 11年前發布 | 33K 次閱讀 libcurl C/C++開發

使用libcurl 獲取網頁數據代碼

/**

  • File: w3G.c
  • libcurl is an open source lib for url. *
  • Copyright: (c) T-ware Inc. *
  • Function: get 3G data from internet *
  • Author: Tody Guo
  • Date: 2013-10-06 * **/

//#include "stdafx.h"

include <stdio.h>

include <curl/curl.h>

//#pragma comment(lib, "libcurl.lib")

void oops(char *msg) { fprintf(stderr, "%s\nReturn code: 1", msg); exit(1); }

size_t write_data(void buffer, size_t size, size_t nmemb, void user_p) { FILE f = (FILE ) user_p;

size_t return_size = fwrite(buffer, size, nmemb, f);

return return_size; }

int main(int argc, char argv[]) { CURL curl; CURLcode resCode; FILE *fp =NULL; char url[256]="www.baidu.com";

printf("Version: %s\n", curl_version());

if (argc>=2) { strncpy(url, argv[1], 256); }

curl = curl_easy_init(); if (NULL==curl) oops("init failed!");

curl_easy_setopt(curl, CURLOPT_URL, url);

if (argc == 3) { fp = fopen(argv[2], "wb+"); if (fp==NULL) oops("open file failed"); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); fprintf(stderr, "Saving to file(%s)...", argv[2]); }

resCode = curl_easy_perform(curl);

if (resCode!=0) oops((char *)curl_easy_strerror(resCode));

curl_easy_cleanup(curl);

if(fp != NULL) fclose(fp);

fprintf(stderr, "\nReturn code: 0"); return 0; }</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!