[pion-users] pion net http client not reading long binary response
client and server HTTP(S) library for Boost C++ developers
Brought to you by:
mikedickey
From: Neel B. <nee...@gm...> - 2015-10-09 06:31:51
|
I am trying to read a application/octet-stream of content size > 200MB with pion net synchronously. But What I get is only 1.0MB downloaded. std::string image_stream_name = (boost::format("/var/lib/hc/images/%1%.%2%.hc") % image_id % instance_id).str(); pion::net::TCPConnectionPtr client_connection(new pion::net::TCPConnection(_service)); client_connection->setLifecycle(pion::net::TCPConnection::LIFECYCLE_KEEPALIVE); pion::net::HTTPRequest client_request; client_request.setMethod("GET"); client_request.setResource((boost::format("/v2/images/%1%/file") % image_id).str()); boost::system::error_code ec; ec = client_connection->connect("localhost", _config.glance().endpoint.port); if(!ec){ client_request.send(*(client_connection.get()), ec); if(!ec){ pion::net::HTTPResponse client_response(client_request); client_response.receive(*client_connection.get(), ec); if(!ec){ std::ofstream image_stream; image_stream.open(image_stream_name.c_str()); std::cout << "downloading image into " << image_stream_name << std::endl; std::cout << "image size: " << client_response.getContentLength() << " chunked: " << client_response.isChunked() << std::endl; client_response.write(image_stream, ec); } } } This same works if response size is smaller. However it is not working for larger responses. returned response content length is wrong. in chrome I see Content-Length:228599296 image size: 1048576 chunked: 0 |