1.libcurl库下载
地址:Release 7.71.1 · curl/curl · GitHub
百度网盘地址:链接: https://pan.baidu.com/s/1i5Tvmi8KmOVzO6VnBO9XCw 提取码: fncx
下载好后自己拉到虚拟机里去,自己建一个httpHandler文件夹,把下好的库cp到里面,使用tar xvf curl-7.71.1.tar.bz2 解压文件夹
2.安装libcurl
通常拿到一个库,着重看包里面的README,通常里面会有安装方法,没的话进入docs,里面有INSTALL,根据方法安装
a.使用./configure --prefix=$PWD/_install 修改安装路径,安装在$PWD(当前路径下)的_install(自己会产生)
configure的其他指令:./configure --with-ssl :使编译出来的东西支持https
./configure --without-ssl :使编译出来的东西不支持https
./configure --host=arm-linux-gnueabihf-gcc :指定交叉编译工具,不指定就是普通gcc
b.使用make进行编译
c.使用make install把编译的结果拷贝到根的相关指令文件夹里,这时会生成_install
3.代码示例
基本的http GET/POST操作
demo1.c
#include <stdio.h>
#include <curl/curl.h>
#define true 1
#define false 0
typedef unsigned int bool //因为c语音都识别不了这些,将原有的数据类型重新给起一个名字
bool getUrl(char *filename)
{
CURL *curl;
CURLcode res;
FILE *fp;
if ((fp = fopen(filename, "w")) == NULL) // 返回结果用文件存储
return false;
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: Agent-007");
curl = curl_easy_init(); // 初始化,得到easy interface型指针
if (curl)
{
//curl_easy_setopt(curl, CURLOPT_PROXY, "10.99.60.201:8080");// 代理
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);// 改协议头
curl_easy_setopt(curl, CURLOPT_URL,"http://www.baidu.com");
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); //将返回的http头输出到fp指向的文件
curl_easy_setopt(curl, CURLOPT_HEADERDATA, fp); //将返回的html主体数据输出到fp指向的文件
res = curl_easy_perform(curl); // 执行
if (res != 0) {
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
fclose(fp);