如何在 cpp-httplib 库中启用 CertOpenSystemStoreW

How to enable CertOpenSystemStoreW in the cpp-httplib library

我正在 Visual Studio 中开发 UWP C++/winRT 应用程序,并试图让 cpp-httplib 库正常工作。如果我不使用 HTTPS,它工作正常,但是当我定义 CPPHTTPLIB_OPENSSL_SUPPORT 标志时,httplib.h 中的“#ifdef”定义了一个子调用 CertOpenSystemStoreW() 的函数,这导致 CertOpenSystemStoreW( ) 未申报。

在深入跟踪 时,由于我的配置,CertOpenSystemStoreW 似乎是未激活代码区域的一部分。

我该怎么做才能重新激活该区域,或者我应该用什么替换 CertOpenSystemStoreW() 以使 SSL 工作? (CertOpenStore() 似乎有效,但我不太了解 SSL 详细信息,不知道是否可以简单地替换该函数)

#include "pch.h"
#include "USDA_API.h"
#include <openssl/ssl.h>
#define CPPHTTPLIB_OPENSSL_SUPPORT
#include <httplib.h>
//#include <cpr/cpr.h>

USDA_API::USDA_API()
{
    httplib::Client cli("http://www.google.com");

    auto resp = cli.Get("/");
    int y = 4;
} 

在 C++/winRT 中是否有更简单的方法发送 HTTPS 请求(GET、POST 等)我不知道?如果 C++/winRT 是 UWP 的扩展,并且 UWP 在 wincrypt.h 中使 CertOpenSystemStoreW() 无效,人们如何在 UWP C++ 应用程序中发送 HTTPS 请求?

谢谢!我能够使用 HttpClient 发送 HTTPS 响应。我还从 a header-only json library 将“json.hpp”复制粘贴到我的项目中,因为 Windows.Data.Json 由于某种原因未被 VS 识别。

我成功获得了 HTTPS 响应并解析了数据!