我有一个需要通过代理支持连接的 boost 客户端。
目前,我能够连接到代理并成功与外部服务器通信,但有一个例外 - ssl 服务器。
代理是 http,我需要从 https 站点连接/检索信息。
我的代码现在连接到代理 asio::ip::tcp::socket _socket; -succeeds 发送 CONNECT host: ssl server 到代理(上面连接) -succeeds
——这就是我卡住的地方。如何执行握手/发送请求?
我找到了这个旧帖子
问题是: 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) 但我不明白这对我有什么帮助}