From f8ff77d3ee795c32c51b904583e1b04a8b7a071e Mon Sep 17 00:00:00 2001 From: chenzhaoyu Date: Thu, 15 Dec 2016 18:46:30 +0900 Subject: [PATCH] fix content-length parse error --- .../client/connection/async_protocol_handler.hpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/boost/network/protocol/http/client/connection/async_protocol_handler.hpp b/boost/network/protocol/http/client/connection/async_protocol_handler.hpp index 1d2fd4445..44f01dac1 100644 --- a/boost/network/protocol/http/client/connection/async_protocol_handler.hpp +++ b/boost/network/protocol/http/client/connection/async_protocol_handler.hpp @@ -270,9 +270,15 @@ struct http_async_protocol_handler { } trim(header_pair.second); headers.insert(header_pair); - if (boost::iequals(header_pair.first, "Content-Length")) { - is_content_length = true; - content_length = std::stoi(header_pair.second); + if (!is_content_length && + boost::iequals(header_pair.first, "Content-Length")) { + try { + content_length = std::stoll(header_pair.second); + is_content_length = true; + } + catch (std::exception&) { + //is_content_length = false; + } } } // determine if the body parser will need to handle chunked encoding @@ -408,7 +414,7 @@ struct http_async_protocol_handler { bool is_chunk_encoding; bool is_chunk_end; bool is_content_length; - std::size_t content_length; + long long content_length; }; } // namespace impl