4

プロキシ経由の接続をサポートする必要があるブースト クライアントがあります。

現在、プロキシに接続し、ssl サーバーを除いて外部サーバーと正常に通信できます。

プロキシは http であり、https サイトから情報を接続/取得する必要があります。

私のコードがプロキシ asio::ip::tcp::socket _socket; に接続するようになりました。-succeeds CONNECT host: ssl server をプロキシに送信します (上記で接続) -succeeds

-- ここが行き詰っています。ハンドシェイク/送信リクエストを実行するにはどうすればよいですか?

この古い投稿を見つけました

boost::asio HTTP プロキシ経由のハンドシェイク?

問題は次のとおりです: 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) である必要があるように見えますが、それがどのように役立つかわかりません}

4

1 に答える 1

1

答えを見つけました。必要なのは、_socket.nextレイヤーを使用してプロキシに接続することです。次に、接続が成功した場合は、_socket.lowest_layer()を使用して応答の読み取り/書き込みを行います。

于 2013-02-04T23:35:52.703 に答える