当前位置: 首页 > article >正文

curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION

文章目录

    • curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION
    • 概述
    • 笔记
    • END

curl8.6.0 - CURLE_PEER_FAILED_VERIFICATION

概述

在看一个开源工程, 里面用到了curl和openssl, 但是工程使用vcpkg来管理的包, 用CMake来编译
依赖太多了, win10 + 编译选项为 vs2019 x64/Win32(或者Ninja)都编译不过 😦 应该是作者给的编译脚本有问题.

openssl我前面实验都编译好了.
现在就差一个curl. 看了curl的编译依赖项(看了几个依赖项的说明, 依赖项本身还有依赖项…), 挺吓人的.
尝试看看用curl官方编译好的curl(dll, lib)看看能用不?

下载官方编译好的curl, 建立了一个vs2019控制台工程, 设置好curl库和头的位置.
将官方demo(D:\my_dev_depend\curl-8.6.0_1-win64-mingw\docs\examples*.c)贴到工程中试试.
试了2个, 都出现了报错, 错误码为 CURLE_PEER_FAILED_VERIFICATION
查了一下, 好像要设置不校验相关选项才行.
咋设置和这个错误码相关的选项呢? 在头文件中猜读/实验了几次, 搞定了.
现在就可以直接用官方编译好的curl, 不用去自己折腾编译工程了. 开源工程依赖多的时候, 自己编译真不好搞定.

这些作者为啥不将依赖项都编译好(或者告诉使用者, 这些依赖项是否有官方编译好的版本), 放在工程目录中, 让使用者直接关心工程本身, 这样会友好很多.

笔记

建立的工程为 vs2019 console x64 debug
下载的官方编译的包为 curl-8.6.0_1-win64-mingw.zip
在这里插入图片描述
在这里插入图片描述

/*! \file curl_v8d6d0_prj_template.cpp
*/

#include <iostream>

// 将工程调试的目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\bin

// 将工程的库目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\lib
#pragma comment(lib, "libcurl.dll.a")

/* <DESC>
 * GET a range only of a HTTP resource
 * </DESC>
 */
// 将工程的头目录设置为 D:\my_dev_depend\curl-8.6.0_1-win64-mingw\include
#include <curl/curl.h>

int main(void)
{
    CURL* curl;
    CURLcode res;

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://www.example.com/");
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); // disable verify for CURLOPT_SSL_VERIFYPEER
        res = curl_easy_perform(curl); // CURLE_PEER_FAILED_VERIFICATION

        if (CURLE_OK == res) {
            char* ct;
            /* ask for the content-type */
            res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct);

            if ((CURLE_OK == res) && ct)
                printf("We received Content-Type: %s\n", ct);
        }

        /* always cleanup */
        curl_easy_cleanup(curl);
    }
    return 0;
}

END


http://www.kler.cn/news/232917.html

相关文章:

  • Linux——进程间通信:管道
  • VUE学习——事件修饰符
  • npm淘宝镜像源换新地址
  • 如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容
  • Modelsim10.4安装
  • 1123. 铲雪车(欧拉回路)
  • 目标检测 | 卷积神经网络(CNN)详细介绍及其原理详解
  • P59---第二阶段B C 相电流
  • 【Kotlin】Kotlin基本数据类型
  • Python 数据分析库之polars使用详解
  • 【语音合成】中文-多情感领域-16k-多发音人
  • 以用户为中心,酷开科技荣获“消费者服务之星”
  • 腾讯云游戏服务器配置有哪些?
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Video媒体组件
  • 猫头虎分享已解决Bug || CPU过载(CPU Overload):HighCpuUsageWarning, CpuOverloadException
  • 2022年通信工程师初级 实务 真题
  • ElasticSearch 8.x 使用 High Level Client 以 HTTPS 方式链接,SSL 证书、主机名验证器 各是什么,如何忽略
  • 通过遵循最佳做法来提高 EDA 和 HPC 应用程序的 Azure NetApp 文件性能
  • Spring Data Envers 数据审计实战2 - 自定义监听程序扩展审计字段及字段值
  • linux(redhat)重置root密码
  • python学习笔记 -- 字符串
  • 文心一言 VS 讯飞星火 VS chatgpt (197)-- 算法导论14.3 5题
  • os模块
  • 基于JAVA的免税店商城管理系统 开源项目
  • 【iOS ARKit】3D 人体姿态估计
  • 红队打靶练习:GLASGOW SMILE: 1.1
  • SaperaCamExpert(相机专家)中文使用指南
  • 蓝桥杯(Web大学组)2022国赛真题:水果消消乐
  • 引入echarts环形图及显示后端数据
  • 新增同步管理、操作日志模块,支持公共链接分享,DataEase开源数据可视化分析平台v2.3.0发布