libcurl 如何支持https
来源:互联网 发布:哈工大大数据集团 国企 编辑:程序博客网 时间:2024/06/06 17:30
执行curl_easy_perform()的时候,返回错误代码:CURLE_UNSUPPORTED_PROTOCOL(1),同时通过打印日志会得到错误提示:" Protocol https not supported or disabled in libcurl"。意思是:不支持HTTPS协议!有人说添加下面两行代码就可以解决:
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYPEER,false);//设定为不验证证书和HOST
curl_easy_setopt(curl,CURLOPT_SSL_VERIFYHOST,false);
测试发现,还是不能支持HTTPS访问!此时,如果还是无法访问HTTPS的网页的话,问题可能出在libcurl本身,很可能是 libcurl 在编译的时候没有选择支持SSL,所以还是重新编译一次libcurl吧!这里要提醒大家的是,通过用CMake工具生成的sln文件来直接编译lib库(我之前就是这样编译的),也很可能没有做SSL支持。所以还是用命令行工具来编译,先制作一个build.bat文件,待会要用到,内容如下:
@REM @echo off@IF [%1]==[debug] (@echo 正在使用debug模式编译libcurl~~~@nmake /f Makefile.vc WITH_DEVEL=../../deps mode=static VC=12 ENABLE_IDN=no RTLIBCFG=dll DEBUG=yes MACHINE=x86) ELSE (@echo 正在使用release模式编译libcurl~~~@nmake /f Makefile.vc WITH_DEVEL=../../deps mode=static VC=12 ENABLE_IDN=no RTLIBCFG=dll DEBUG=no MACHINE=x86)@REM @echo on
本人下载的是7.48.0版本,接着在开始菜单中打开Visual Studio 2013 > Visual Studio Tools > VS2013开发人员命令提示,cd到curl-7.48.0的winbuild目录下:输入build.bat 按下回车键开始编译,等待编译完成!如果是debug版本,则再输入空格 debug,回车!开始编译。。。最后,贴上一段使用libcurl进行https访问的代码,希望对大家有所帮助。
int https_get(const std::string & strUrl, std::string & strResponse, const char * pCaPath){CURLcode res;CURL* curl = curl_easy_init();if(NULL == curl){return CURLE_FAILED_INIT;}curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());curl_easy_setopt(curl, CURLOPT_READFUNCTION, NULL);curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&strResponse);curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);if(NULL == pCaPath){curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);//设定为不验证证书和HOSTcurl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, false);}else{curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, true);curl_easy_setopt(curl, CURLOPT_CAINFO, pCaPath);}curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3);curl_easy_setopt(curl, CURLOPT_TIMEOUT, 3);res = curl_easy_perform(curl);curl_easy_cleanup(curl);return res;}
PS:使用libcurl作为http客户端,可以参考一下:http://blog.csdn.net/hellokandy/article/details/53911448
- libcurl如何支持https
- libcurl 如何支持https
- libcurl 如何支持https
- Cocos2d-x libcurl如何支持https
- 使用libcurl 支持https
- libcurl编译,支持https
- libcurl如何支持ssl
- Ubuntu+NDK编译支持HTTPS的libcurl
- vs 支持https libcurl静态库
- 随笔:交叉编译libcurl库支持HTTPS
- 如何在Windows+VS2005使用最新静态libcurl 7.35.0获取网页数据,支持HTTPS
- IJKPlayer如何支持https
- Libcurl中配置openssl使其支持https
- android支持https通讯,交叉编译 libcurl libnghttp2 oponssl
- 在Ubuntu和Windows上编译libcurl支持https
- libcurl库的使用支持http、https、ftp上传下载
- libcurl windows下编译和post使用及https支持
- libcurl基础教程及封装(支持同步异步请求,支持多线程下载,支持https)
- 【AR】增强现实ar目前提供的sdk汇总
- 深入理解指针数组 ,数组指针 ,函数指针 ,函数指针数组 ,指向函数指针数组的指针
- YOLO windows 配置
- 异常处理
- 罪过,罪过
- libcurl 如何支持https
- java排序之shell排序
- 自定义泛型
- Android自定义一个时间轴,通过ListView来实现时间轴的效果
- leetcode-112. Path Sum
- NLTK之朴素贝叶斯分类器
- RxJS入门(4)----深入Sequence
- 解析MATLAB中设置当前工作目录与搜索路径设置的区别
- 【AR】Kinect + Unity 体感及增强现实开发历程