这篇文章主要介绍“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的编译安装和使用方法相关内容。