簡體   English   中英

通過http代理增強asio ssl身份驗證

[英]Boost asio ssl authentication through http proxy

我有一個需要通過代理支持連接的boost客戶端。

目前,我能夠連接到代理並成功與外部服務器通信,只有一個例外 - ssl服務器。

代理是http,我需要連接/檢索來自https站點的信息。

我的代碼現在連接到代理asio :: ip :: tcp :: socket _socket; -succeeds將CONNECT主機:ssl服務器發送到代理(上面連接)-succeeds

- 這就是我被困住的地方。 如何執行握手/發送請求?

我找到了這個老帖子

通過http代理提升:: asio握手?

問題是:sslsocket_(socket_,context)//這不編譯(構造函數期望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),但我不知道這對我有什么幫助}

我找到了答案,我需要使用_socket.next層連接到代理。 然后,如果連接成功,則使用_socket.lowest_layer()讀取/寫入響應

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM