很多嵌入式设备都有接入网络的功能,那么在Linux下的C,用什么HTTP库比较合适呢?嵌入式设备资源都比较紧张,大的库肯定不是一个好的选择。
由于不是专业的,只能找到以下库:
libcurl
curl-7.56.1.zip 大小是5.27MB,里面包含了supporting HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. 所以能精简出来HTTP是没有5.27MB那么大。而且一般linux系统都带有curl的库,c语言可以直接引入curl的头文件。
c/c++调用libcurl库发送http请求的两种基本用法
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int main(int argc, char *argv[])
{
CURL *curl; //定义CURL类型的指针
CURLcode res; //定义CURLcode类型的变量,保存返回状态码
if(argc!=2)
{
printf("Usage: file <url>;\n");
exit(1);
}
curl = curl_easy_init(); //初始化一个CURL类型的指针
if(curl!=NULL)
{
//设置curl选项.其中CURLOPT_URL是让用户指定url.argv[1]中存放的命令行传进来的网址
curl_easy_setopt(curl,CURLOPT_URL, argv[1]);
//调用curl_easy_perform执行我们的设置.并进行相关的操作.在这里只在屏幕上显示出来.
res = curl_easy_perform(curl);
//清除curl操作.
curl_easy_cleanup(curl);
}
return 0;
}1
2
3编译和运行
gcc test_curl.c -o test -lcurl
./test www.baidu.comTinyhttpd
Tinyhttpd 是J. David Blackstone在1999年写的一个不到 500 行的超轻量型 Http ServerBoa
Boa是一个非常小巧的web服务器,其可执行代码只有约60KbC++ client for making HTTP/REST requests