2

我们正在使用Resource Owner Credentials我们的 internal 获取访问令牌OAuth Svr。如果 url 中不包含任何 https,则一切正常,但是当我在其中包含 https 时,一切都失败了。

我们部署了所有站点https

遵循一个非常简单的失败代码。如果我包含在其中,我不知道为什么会出现异常https

try
{
    http_client api(U("https://172.27.12.207/AuthSvr"), m_http_config);
    ucout << "Requesting account information:" << std::endl;
    ucout << "Information: " << api.request(methods::GET, U("identity/.well-known/openid-configuration")).get().extract_json().get() << std::endl;
    //TestRestAPI().wait();
}
catch (...)
{
    ucout << "Unknown Error";
}

编辑

我处理了要捕获的异常web::http::http_exception,但我看到了错误:

WinHttpSendRequest: 12175: A security error occurred
4

2 回答 2

0

// 创建一个 HTTP 请求句柄。shRequest = WinHttpOpenRequest (shConnect, L"GET", L"/robots.txt", NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0); //WINHTTP_FLAG_SECURE );

在我的情况下,通过注释掉 WINHTTP_FLAG_SECURE 标志解决了类似的问题。

于 2016-08-23T03:58:56.730 回答
0

尝试验证自签名证书时会出现此问题。这通常出现在没有使用有效证书但生成动态证书的开发中。

可以通过禁用验证来解决。

web::http::client::http_client_config config;
config.set_validate_certificates(false);

auto client = std::make_shared<web::http::client::http_client>(U("https://localhost:8081/"), config);

请绝对确保这仅在调试测试代码中完成,而不是最终产品的一部分。

于 2016-05-27T08:33:00.663 回答