libcurl第十课 HTTPS交互

2023-05-16

场景
       跟乐橙云访问,需要使用HTTPS协议


额外配置,否则执行返回CURLE_UNSUPPORTED_PROTOCOL错误
1)libcurl版本升级到7.61.0版本
2)libcurl项目属性中预编译器添加USE_WINDOWS_SSPI  USE_SCHANNEL
3)在引用项目的属性中添加额外的静态库Crypt32.lib,Wldap32.lib
   

代码

size_t CLeChengIPC::WriteResponseBody(void *ptr, size_t size, size_t nmemb, void *userData)
{
 std::string* pStrBuffer = (std::string*)userData;
 size_t nLen = size * nmemb;
 pStrBuffer->append((char*)ptr, nLen);
 return nLen;
}

int CLeChengIPC::CommunicateWithServerUsingHTTPS(const std::string &strPostData, const std::string &strUrl, std::string &strResponseData)
{
 CURL *pCurlHandle = curl_easy_init();
 curl_easy_setopt(pCurlHandle, CURLOPT_CUSTOMREQUEST, "POST");
 curl_easy_setopt(pCurlHandle, CURLOPT_URL, strUrl.c_str());
 curl_easy_setopt(pCurlHandle, CURLOPT_WRITEFUNCTION, WriteResponseBody);//设置回调函数
 curl_easy_setopt(pCurlHandle, CURLOPT_HEADER, 1);//保存HTTP头部信息到strResponseData
 curl_easy_setopt(pCurlHandle, CURLOPT_WRITEDATA, &strResponseData);//设置回调函数的参数,获取反馈信息
 curl_easy_setopt(pCurlHandle, CURLOPT_TIMEOUT, 15);//接收数据时超时设置,如果10秒内数据未接收完,直接退出
 curl_easy_setopt(pCurlHandle, CURLOPT_MAXREDIRS, 1);//查找次数,防止查找太深
 curl_easy_setopt(pCurlHandle, CURLOPT_CONNECTTIMEOUT, 5);//连接超时,这个数值如果设置太短可能导致数据请求不到就断开了
 curl_easy_setopt(pCurlHandle, CURLOPT_SSL_VERIFYPEER, false);//设定为不验证证书和HOST
 curl_easy_setopt(pCurlHandle, CURLOPT_SSL_VERIFYHOST, false);
 curl_easy_setopt(pCurlHandle, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
 curl_easy_setopt(pCurlHandle, CURLOPT_POSTFIELDS, strPostData.c_str());
 CURLcode nRet= curl_easy_perform(pCurlHandle);
 curl_easy_cleanup(pCurlHandle);
 return nRet;
}

注意
enum {
  CURL_SSLVERSION_DEFAULT,
  CURL_SSLVERSION_TLSv1, /* TLS 1.x */
  CURL_SSLVERSION_SSLv2,
  CURL_SSLVERSION_SSLv3,
  CURL_SSLVERSION_TLSv1_0,
  CURL_SSLVERSION_TLSv1_1,
  CURL_SSLVERSION_TLSv1_2,
  CURL_SSLVERSION_TLSv1_3,
  CURL_SSLVERSION_LAST /* never use, keep last */
};
  CURL_SSLVERSION_SSLv2和CURL_SSLVERSION_SSLv3两个宏定义不能使用,否则返回错误CURLE_SSL_CONNECT_ERROR,建议使用CURL_SSLVERSION_TLSv1_2宏定义

修订
2019/7/8 使用CURL_SSLVERSION_SSLv2导致CURLE_SSL_CONNECT_ERROR异常问题记录


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libcurl第十课 HTTPS交互 的相关文章

  • Ubuntu下扫描同一局域网的其他设备IP

    1 安装arp scan sudo apt get install arp scan 2 使用ifconfig查看本机IP地址 xff0c 一般有线在interface en0 eth0 无线在wlan0上 ifconfig 箭头中所指是我
  • C/C++基础 C语言预编译宏__LINE__、__FILE__、__DATE__、__TIME__、__FUNCTION__

    ANSIC标准定义了以下6种可供C语言使用的预定义宏 xff1a LINE 在源代码中插入当前源代码行号 FILE 在源代码中插入当前源代码文件名 DATE 在源代码中插入当前编译日期 注意和当前系统日期区别开来 TIME 在源代码中插入当
  • linux下每次git clone不需输入账号密码的方法

    有的仓库有很多的子模块 submodule 当clone的时候每个子模块都会让输入一次账户密码 xff0c 不胜其烦 xff0c 解决方法如下 xff1a 在 下 xff0c touch创建文件 git credentials 用vim编辑
  • Ubuntu创建新用户的两种方法

    组里的服务器是Ubuntu系统 xff0c 跑实验的话需要远程访问 xff0c 这样的话需要在服务器上创建一个自己的账户 xff0c 本文记录一下在Ubuntu系统下创建新用户的过程 xff08 服务器的远程访问一般通过ssh来实现 xff
  • Ubuntu中gnome-terminal的使用

    基本使用 gnome terminal命令用于打开一个新的终端 xff0c 直接在命令行就可以打开一个新的终端 gnome terminal 打开后自动最大化 gnome terminal maximize 打开后全屏 gnome term
  • 【计算机基础】字节序

    字节序 计算机最小的存储单位是 位 xff08 Bit xff09 xff0c 但是 xff0c 计算机中最基本的存储单位是字节 xff08 Byte xff09 1 Byte 61 8 Bit 计算机在存储大于1字节的数据时 xff0c
  • 内存中堆和栈的区别

    在说堆和栈之前 xff0c 我们先说一下JVM xff08 虚拟机 xff09 内存的划分 xff1a Java程序在运行时都要开辟空间 xff0c 任何软件在运行时都要在内存中开辟空间 xff0c Java虚拟机运行时也是要开辟空间的 J
  • 1.5 万字 + 40 张图解 HTTP 常见面试题(值得收藏)

    作者 xff1a 小林coding 图解计算机基础网站 xff1a https xiaolincoding com 大家好 xff0c 我是小林 xff0c 我最开始写的第一篇图解文章就是这篇 xff1a 那时候我也就不到 100 读者 x
  • libcurl第七课 multipart/formdata表单使用

    场景 multipart form data是浏览器用表单上传文件的方式 最常见的情境是 xff1a 在写邮件时 xff0c 向邮件后添加附件 xff0c 附件通常使用表单添加 xff0c 也就是用multipart form data格式
  • 【测绘专用】中海达全站仪数据导入南方CASS

    先从全站仪导入数据到电脑 xff08 我是用U盘的 xff09 xff0c 然后打开数据文件后是这个样子 上图并不是导出后原先的数据格式 导出文件后 xff0c 它的数据格式实际上不是上面这样的 xff0c 要经过处理后才行 从中海达下载数
  • 广工 AnyviewC 数据结构习题 第二章

    广工 AnyviewC 数据结构习题 第二章 广工 AnyviewC 数据结构习题 第二章Anyview 数据结构 第二章1 题目 试写一算法 xff0c 实现顺序栈的判空操作2 题目 试写一算法 xff0c 实现顺序栈的取栈顶元素操作3
  • 广工 AnyviewC C语言习题 第六章

    Anyview 第六章 6 022 n是系统给定的外部变量 编写程序 xff0c 求1到n间的 自然数之和 请定义局部变量s存放求和的结果 xff0c 并用下 列语句输出结果 span class token function printf
  • 广工 AnyviewC C语言习题 第七章

    Anyview 第七章 习题7 010 写一函数求3个整数中最小的数 span class token keyword int span span class token function min span span class token
  • 广工 AnyviewC C语言习题 第十、十一章

    Anyview 第十 十一章 第十章 10 011 请编写一个函数func char s char t int n xff0c 由数组s中长度为n的字符序列构造其逆序列 xff0c 并存储在数组t中 例如 xff0c 由给定字符序列s 61
  • 【测绘专用】 MATLAB 四叉树分割遥感图像

    MATLAB 四叉树分割遥感图像 四叉树是遥感图像处理里面常用的一种算法 xff0c 我这里采用递归的方法来实现 数据处理的思路 对于图像矩阵 xff0c 我是判断它的方差是否小于某个阈值 xff0c 大于就继续分 xff0c 小于就不分
  • VS code配置latex美赛模板

    VS code配置latex美赛模板 首先要知道安装的latex版本是miktex还是texlive Miktex 我的是2 9的 解压模板文件 xff1a 用VScode打开上面红圈里的文件即可进行编辑 Texlive 打开 Tex Li
  • OkHttpUtils (OkHttpUtil工具类)

    public class OkHttpUtil static OkHttpUtil okHttpUtil private OkHttpClient Builder builder private Request Builder reques
  • C++经典类库(C++开发必看)

    现实中 xff0c C 43 43 的库门类繁多 xff0c 解决的问题也是极其广泛 xff0c 库从轻量级到重量级的都有 本文为你介绍了十一种类库 xff0c 有我们常见的 xff0c 也有不常见的 xff0c 一起来看 AD xff1a
  • libcurl第九课 Content-Length的添加机制

    场景 lt DOCTYPE HTML PUBLIC 34 W3C DTD HTML 4 01 EN 34 34 http www w3 org TR html4 strict dtd 34 gt lt HTML gt lt HEAD gt
  • 英伟达NX上使用 Python 硬解码ip摄像头h264视频流

    问题 用另一篇博客rtsp拉流的方法 xff0c 当单独拉流时 xff0c 不会出现任何问题 可是如果将拉流和检测算法结合 xff0c 就会出现断流 xff0c 花屏 xff0c 跳帧 xff0c 播放延迟 xff0c 播放速度卡顿等问题

随机推荐

  • http库

    当我们使用 Go 语言进行 Web 开发时 xff0c 不可避免地要使用到 http 包 该包提供了 HTTP 客户端和服务器的实现 xff0c 可以轻松地编写 HTTP 服务器和客户端 在本节中 xff0c 我们将学习如何使用 Go 语言
  • CMake链接静态库

    set CMAKE CXX STANDARD 14 include directories CMAKE SOURCE DIR include include directories CMAKE SOURCE DIR include rtk
  • 清晰解读C语言中的位域、字节序、比特序、大小端

    一 比特序 位序 比特序表示一个字节中8个比特位 xff08 bit xff09 之间的顺序问题 分为LSB 0 位序和MSB 0 位序 LSB least significant bit xff1a 数据的最低位存放在字节的第0位 MSB
  • swiper轮播图代码实例

    lt span class hljs constant DOCTYPE span html gt lt html gt lt head gt lt meta charset 61 span class hljs string 34 UTF
  • Ubuntu编译安装Node.js

    编译安装nodejs 1 wget c https nodejs org dist v6 9 1 node v6 9 1 tar gz 2 tar zxvf node v6 9 1 tar gz 3 cd node v6 9 1 4 con
  • node.js的post和get简单取值

    span class hljs reserved var span http 61 span class hljs built in require span span class hljs string 39 http 39 span s
  • php 判断是移动端还是pc端访问web页面

    function is mobile span class hljs variable user agent span 61 span class hljs variable SERVER span span class hljs stri
  • mongodb的where条件

    mongodb的where条件 1 比较条件 等于 db tian find span class hljs string 39 name 39 span span class hljs symbol span class hljs str
  • ZED相机的使用

    下面简要说明一下ZED双目相机的使用 1 开发环境搭建 首先zed的相机必须要nvidia显卡支持 xff0c 没有的同学可以洗洗睡了 xff0c 或者你可以拿来当普通相机用 首先安装cuda xff0c 再去zed官网下载对应cuda版本
  • libcurl第十一课 使用以及注意事项

    经验 1 xff09 配合Postman能够快速的生成例子代码 2 xff09 curl global init初始化 如果调用curl库函数的时候 xff0c 没有调用curl global init进行curl全局变量的初始化 xff0
  • 基于ROS的hector-slam使用Kinect V1建图

    距离值在ROS中被称为scan xff0c 并且姿态 xff08 位置 43 方向 xff09 信息会根据相对坐标关系而改变 xff0c 因此被称为tf xff08 transform xff09 一 建图实际操作 下载源码测试源码 xff
  • 下载Fiddler后不知从何下手?来看看怎么抓包抓接口吧

    1 Fiddler简介 Fiddler是位于客户端和服务器之间的一个代理 xff0c 类似于生活中厂家和客户之间的代理商或微商 2 Fiddler抓包实战 当打开Fiddler时 xff0c 便会自动开启代理服务器 xff0c 监听端口号抓
  • socket、select、poll、epoll实现TCP并发处理

    网络通信 常用网络通信接口大概四种 xff0c socket select poll epoll 使用socket实现服务器的并发处理 优点 xff1a 代码框架简单 缺点 xff1a 碍于内存的限制 xff0c 并发量不会大 xff0c
  • find_package opencv

    1 find package OpenCV 3 REQUIRED 通过OpenCV DIR变量寻找OpenCVConfig cmake文件 xff0c 默认在 usr share OpenCV中 set OpenCV DIR 34 34 指
  • 工业通讯领域的总线、协议、规范、接口、数据采集与控制系统

    一 工控安全 工控 xff0c 指的是工业控制自动化 xff0c 主要利用电气 机械 软件组合的方式实现 xff0c 即是工业控制系统 xff0c 或者是工厂自动化控制 工控安全指的是工业控制系统的数据 网络和系统安全 随着工业信息化的迅猛
  • Java Web 开发详解

    一 Web基础 1 Web 概述 Web 在英文中的含义是网状物 网络 在计算机领域 xff0c 它通常指的是后者 xff0c 即网络 像 WWW 是由 3 个单词组成的 xff0c 即World Wide Web xff0c 中文含义是万
  • 【无标题】amd卡顿,黑屏,解决办法

    amd黑屏几秒原因是日光灯启动 xff0c 空调冰箱压缩机启动后照成的 xff0c 这种情况是220v的电路和显示器的hdmi线相隔太近分开或者换dp也可以 amd卡顿几秒 cpu百分百 是amd显卡驱动设置问题 改游戏模式为标准就行了
  • 处理点云程序段错误process has died [pid 31695, exit code -11, cmd /home

    问题 xff1a 编写了一个处理点云的程序 编译全部通过 xff0c 播放点云bag包后运行程序时报错 xff1a plane fitter 1 process has died pid 31695 exit code 11 cmd hom
  • [ WARN] [1531227099.238940419]: MessageFilter [target=odom ]: Dropped 100.00% of messages so far. Pl

    执行roslaunch rplidar ros rplidar launch 报错信息 WARN 1531227099 238940419 MessageFilter target 61 odom Dropped 100 00 of mes
  • libcurl第十课 HTTPS交互

    场景 跟乐橙云访问 xff0c 需要使用HTTPS协议 额外配置 xff0c 否则执行返回CURLE UNSUPPORTED PROTOCOL错误 1 xff09 libcurl版本升级到7 61 0版本 2 xff09 libcurl项目