2014年01月26日 星期日 09:06
http协议是现代互联网中最为重要的通讯协议之一,其古老而又与时俱进。如今各大网络服务的开放平台均提供基于http协议的API,我们如果要使用这些API,那么一个可靠好用的http client library是不可或缺的。
libcurl是一组历史悠久,稳定可靠、多协议、跨平台、开源免费的开发库,可以很方便的开发http客户端程序。
libcurl官方网站无不自豪的说:
libcurl is most probably the most portable, most powerful and most often used C-based multi-platform file transfer library on this planet - be it open source or commercial.
简单的示例代码如下:
#include <stdio.h> #include <curl/curl.h> int main(int argc,char **argv) { CURL *curl; CURLcode result; curl=curl_easy_init(); if(!curl) { return -1; } char *url; if(argc > 1) { url=argv[1]; } else { url="http://apr.apache.org/docs/apr/1.3/modules.html"; } curl_easy_setopt(curl,CURLOPT_URL,url); FILE *fp=fopen("result.htm","w+"); if(!fp) { perror("fopen"); return -2; } curl_easy_setopt(curl,CURLOPT_WRITEDATA,fp); curl_easy_setopt(curl,CURLOPT_VERBOSE,1); result=curl_easy_perform(curl); curl_easy_cleanup(curl); fclose(fp); return 0; }
Makefile示例如下:
CURL_FLAGS = `pkg-config --cflags --libs libcurl` all: curl_easy curl_easy: curl_easy.c gcc -std=c99 -o curl_easy ${CURL_FLAGS} curl_easy.c clean: rm -f curl_easy *.o
参考资料:
Zeuux © 2024
京ICP备05028076号