【问题标题】:asio ssl content is unreadableasio ssl 内容不可读
【发布时间】:2016-09-21 19:57:48
【问题描述】:

我正在使用 boost 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ä;

【问题讨论】:

    标签: ssl boost-asio


    【解决方案1】:

    这看起来像是使用 Content-Encoding 分块传输的压缩内容。如果您查看 HTTP 标头(您必须在未显示的代码中阅读过该标头),您可能会发现:

     Transfer-Encoding: chunked
     Content-Encoding: gzip 
    

    【讨论】:

      猜你喜欢
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      相关资源
      最近更新 更多