2016-09-21 10 views
0

私は別のウェブサイト(すべてのSSL)のコンテンツを読むためにboost asioを使用しています。 一部のサイトでは、私のコードが動作しており、正しいコンテンツを取得しています。 他のものは、Googleのように私にヘッダーを渡しますが、コンテンツはごみです(私は最後に例を掲載します)。asio SSLコンテンツを読むことができません

asio::io_service svc; 
context_(asio::ssl::context::sslv23_client); 
socket(svc, context); 
context.set_default_verify_paths(); 

asio::ip::tcp::resolver resolver(svc_); 
asio::ip::tcp::resolver::query query("www.google.de", "https"); 
asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); 

socket.set_verify_mode(asio::ssl::context::verify_none); 

asio::connect(socket.next_layer(), endpoint_iterator); 
socket.handshake(asio::ssl::stream<asio::ip::tcp::socket>::client); 

// Building request_buffer.. 
// ... 
asio::write(socket, request_buffer); 

// reading content 
while(asio::read(socket, stream_buffer, asio::detail::transfer_at_least_t(1))) { 
    std::cout<< &response_buffer; 
} 

これは私のコードのサンプルです。私は、私の問題はつながりだと思う。そうでなければ、私は完全なコードを投稿することができます。

応答例: 12b3 ╝<╔r9ûg+ó ª]-ÆÖ$ôï,▒CÂeùª╝¿-òË╚Iÿ╣5Ç%MÈe>óOÐù:╬╣Nu˃╠ù╠{@«dJJRvD'æ└█­­VðçO_}xy±ƒg'dí|o|êƒ─ú┴³¿ß▓µ½ô1ÛÄ}ª(Öåübü:j(vÑ┌8¸9Ö.¿ÉL┼jÍ6 îèÜý1┐<j╝4ËøÎk┤7ax,Zä;

答えて

0

これは、Content-エンコーディングチャンクで転送圧縮されたコンテンツのように見えます。 HTTPヘッダー(これはコードでは読まなくてはならない)を見ると、おそらく次のようになります:

Transfer-Encoding: chunked 
Content-Encoding: gzip 
関連する問題