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 © 2025
京ICP备05028076号