libcurl的编译安装和使用方法/libcurl c

这篇文章主要介绍“pbcurl的编译安装和使用方法”,在日常操作中,相信很多人在pbcurl的编译安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pbcurl的编译安装和使用方法”的疑惑有所帮助!。

这篇文章主要介绍“pbcurl的编译安装和使用方法”,在日常操作中,相信很多人在pbcurl的编译安装和使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”pbcurl的编译安装和使用方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

下载pbcurl:

https://github.com/curl/curl

pbcurl官方指导:

https://curl.se/

编译pbcurl:

编译步骤:
wanglc@wanglc-VirtualBox:~/Downloads$unzipcurl-master.zip
wanglc@wanglc-VirtualBox:~/Downloads$cdcurl-master/
wanglc@wanglc-VirtualBox:~/Downloads$./buildconf
wanglc@wanglc-VirtualBox:~/Downloads$./configure
wanglc@wanglc-VirtualBox:~/Downloads$./make
wanglc@wanglc-VirtualBox:~/Downloads$sudomakeinstall(默认安装到/usr/local目录下)

编译之后的头文件:
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$pwd
/home/wanglc/Downloads/curl-master/include/curl
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$ls
curl.hcurlver.heasy.hMakefileMakefile.amMakefile.inmprintf.hmulti.hoptions.hstdcheaders.hsystem.htypecheck-gcc.hurlapi.h
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/include/curl$

编译之后的库文件:
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/pb/.pbs$ls-lpbcurl.so*
lrwxrwxrwx1wanglcwanglc164月1522:19pbcurl.so->pbcurl.so.4.7.0
lrwxrwxrwx1wanglcwanglc164月1522:19pbcurl.so.4->pbcurl.so.4.7.0
-rwxrwxr-x1wanglcwanglc4996484月1522:19pbcurl.so.4.7.0
wanglc@wanglc-VirtualBox:~/Downloads/curl-master/pb/.pbs$

安装后的头文件:
wanglc@wanglc-VirtualBox:/usr/local/include/curl$ls
curl.hcurlver.heasy.hmprintf.hmulti.hoptions.hstdcheaders.hsystem.htypecheck-gcc.hurlapi.h
wanglc@wanglc-VirtualBox:/usr/local/include/curl$pwd
/usr/local/include/curl
wanglc@wanglc-VirtualBox:/usr/local/include/curl$cd..

安装的库文件:
wanglc@wanglc-VirtualBox:/usr/local/pb$ls
cmakepbcurl.lapbcurl.so.4pbjsoncpp.apbjsoncpp.so.1.9.4pbprotobuf.lapbprotobuf-pte.sopbprotobuf-pte.so.26.0.0pbprotobuf.so.26objects-Releasepython3.8
pbcurl.apbcurl.sopbcurl.so.4.7.0pbjsoncpp.sopbjsoncpp.so.24pbprotobuf-pte.lapbprotobuf-pte.so.26pbprotobuf.sopbprotobuf.so.26.0.0pkgconfig
wanglc@wanglc-VirtualBox:/usr/local/pb$ls-lpbcurl.so*
lrwxrwxrwx1rootroot164月1522:25pbcurl.so->pbcurl.so.4.7.0
lrwxrwxrwx1rootroot164月1522:25pbcurl.so.4->pbcurl.so.4.7.0
-rwxr-xr-x1rootroot4996484月1522:25pbcurl.so.4.7.0
wanglc@wanglc-VirtualBox:/usr/local/pb$pwd
/usr/local/pb
wanglc@wanglc-VirtualBox:/usr/local/pb$

pbcurlhttpget编程:

#include<curl/curl.h>

//size_twrite_callback(char*ptr,size_tsize,size_tnmemb,void*userdata)
//FILE*fp;

1.创建CURL变量
CURL*curl=nullptr;

2.初始化CURL变量
curl=curl_easy_init();
if(curl==nullptr)
{
return;
}

3.设置CURL选项
curl_easy_setopt(curl,CURLOPT_URL,"http://www.baidu.com");//默认为get请求,get请求的参数是表单参数,直接写在网址后面即可。

//设置处理响应数据的回调
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_callback);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,fp);//fp作为write_callback的userdata参数传入。

4.执行CURL请求(默认是同步执行)
CURLcoderes;
res=curl_easy_perfom(curl);
if(res!=CURLE_OK)
{
curl_easy_strerror(res);//返回错误描述字符串,可打印
curl_easy_cleanup(curl);
return;
}

5.清理CURL变量
curl_easy_cleanup(curl);

pbcurlhttp post编程:

#include<curl/curl.h>

//size_twrite_callback(char*ptr,size_tsize,size_tnmemb,void*userdata)
//FILE*fp;

1.创建CURL变量
CURL*curl=nullptr;

2.初始化CURL变量
curl=curl_easy_init();
if(curl==nullptr)
{
return;
}

3.设置CURL选项
curl_easy_setopt(curl,CURLOPT_URL,"http://www.baidu.com");//默认为get请求
curl_easy_setopt(curl,CURLOPT_POST,1);//开启post请求
curl_easy_setopt(curl,CURLOPT_POSTFIELDSIZE,/*POSTFIELDS字符串的长度*/);
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,"name=daniel&project=curl");//字符串,post表单数据

//设置处理响应数据的回调
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,write_callback);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,fp);//fp作为write_callback的userdata参数传入。

4.执行CURL请求(默认是同步执行)
CURLcoderes;
res=curl_easy_perfom(curl);
if(res!=CURLE_OK)
{
curl_easy_strerror(res);//返回错误描述字符串,可打印
curl_easy_cleanup(curl);
return;
}

5.清理CURL变量
curl_easy_cleanup(curl);

pbcurl实现下载文件(get):

参考https://curl.se/pbcurl/c/http2-download.html

#

pbcurl实现上传文件(post):

参考https://curl.se/pbcurl/c/http2-upload.html

#

全局初始化和全局清理:

curl_global_init(CURL_GLOBAL_ALL)和curl_global_cleanup()

SSL相关的选项:

CURLOPT_SSL_VERIFYPEER

CURLOPT_SSL_VERIFYHOST

CURLOPT_CAPATH

cookie和session:

CURLOPT_COOKIEJAR保存cookie信息到本地cookie文件。

CURLOPT_COOKIEFILE读取本地cookie文件的信息。

添加httpheader:

struct curl_spst *headers = NULL;

headers = curl_spst_append(headers, “Accept: Agent-007″);

CURLOPT_HTTPHEADER 将headers中的header参数追加到curl。

CURLOPT_HEADER非0表示添加header参数。

curl_spst_free_all释放headers关联的内存。

其他选项

CURLOPT_POST

CURLOPT_VERBOSE

CURLOPT_FOLLOWLOCATION

CURLOPT_CUSTOMREQUEST

到此,关于“pbcurl的编译安装和使用方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网站,小编会继续努力为大家带来更多实用的文章!

本文libcurl的编译安装和使用方法整理到此结束,字数约5044字,希望对大家有所帮助。屹东网往后会继续推荐libcurl的编译安装和使用方法相关内容。