首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译‘set_ssl_ Error _callback’时出错:在Windows上

编译‘set_ssl_ Error _callback’时出错:在Windows上
EN

Stack Overflow用户
提问于 2019-07-05 10:33:18
回答 1查看 469关注 0票数 2

我想在我的上下文中添加一些TLS规范,因此我使用的是set_ssl_context_callback

但是我得到了错误"set_ssl_context_callback不是web::http::client::http_client_config的成员“,因为它周围是:

代码语言:javascript
复制
#if !defined(_WIN32) && !defined(__cplusplus_winrt)

如何禁用这些标志?

有解决办法吗?我正在使用Visual 2017。

代码语言:javascript
复制
http_client_config config;
        config.set_ssl_context_callback([](boost::asio::ssl::context &context){
            context.set_options(boost::asio::ssl::context::no_sslv2
                | boost::asio::ssl::context::no_sslv3
                | boost::asio::ssl::context::no_tlsv1
                | boost::asio::ssl::context::no_tlsv1_1);
        });
        http_client raw_client(SessionData::get_instance().GetServerUrl(), config);

我得到以下错误"set_ssl_context_callback不是web::http::client::http_client_config的成员“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 03:59:07

由于Windows已被禁用,因此此功能不可用:

定义(_WIN32)和定义(__cplusplus_winrt)

用cpprest 2.10代替使用以下代码:

代码语言:javascript
复制
    auto func = [&](native_handle handle) {
        BOOL win32Result = FALSE;
        DWORD secure_protocols = WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2;
        win32Result = ::WinHttpSetOption(handle,
            WINHTTP_OPTION_SECURE_PROTOCOLS,
            &secure_protocols,
            sizeof(secure_protocols));
        if (FALSE == win32Result) {
            MessageBox(NULL, L"error", L"Failed to set minimum TLS option", MB_OK);
        }
        else
            MessageBox(NULL, L"error", L"Set minimum TLS option to Success", MB_OK);

    };

   config.set_nativesessionhandle_options(func)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56901379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档