【问题标题】:Boost asio ssl authentication through http proxy通过 http 代理提升 asio ssl 身份验证
【发布时间】:2013-01-01 17:34:35
【问题描述】:

我有一个需要通过代理支持连接的 boost 客户端。

目前我能够连接到代理并成功与外部服务器通信,但有一个例外 - ssl 服务器。

代理是 http,我需要从 https 站点连接/检索信息。

我的代码现在做了什么 连接到代理 asio::ip::tcp::socket _socket; -成功 发送 CONNECT 主机:ssl 服务器到代理(上面已连接)-成功

-- 这就是我卡住的地方。如何执行握手/发送请求?

我找到了这篇旧帖子

boost::asio handshake through http proxy?

问题是: sslsocket_(socket_,context) //this 不编译(构造函数期望 io_Service 而不是套接字) --使用boost 1.52

好的,下面是代码

//解析头部并检查响应

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> _socket;
boost::asio::ip::tcp::socket _httpSocket;
...

int response= _httpHeader.getResult(header.c_str());
if(response==200) { 
boost::asio::ssl::context ctx(io_service,boost::asio::ssl::context::sslv23);
 _sslSocket(_httpSocket,ctx); //this fails 

注意:我从上面的帖子中复制了上面的内容,基于这部分工作的帖子。在我看来它应该是 _sslSocekt(io_service,ctx) 但我不明白这对我有什么帮助 }

【问题讨论】:

  • 发布您的代码以证明编译失败

标签: c++ boost boost-asio


【解决方案1】:

我找到了答案,我需要使用 _socket.next 层连接到代理。然后,如果连接成功,则使用 _socket.lowest_layer() 读取/写入响应

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2011-11-08
    • 1970-01-01
    • 2012-03-09
    相关资源
    最近更新 更多