diff --git a/lib/src/HttpRequestParser.cc b/lib/src/HttpRequestParser.cc index 4ec45b97..153b4338 100755 --- a/lib/src/HttpRequestParser.cc +++ b/lib/src/HttpRequestParser.cc @@ -214,6 +214,7 @@ bool HttpRequestParser::parseRequest(MsgBuffer *buf) shutdownConnection(k413RequestEntityTooLarge); return false; } + _request->_content.reserve(_request->_contentLen); } else { @@ -251,12 +252,12 @@ bool HttpRequestParser::parseRequest(MsgBuffer *buf) if (_request->_contentLen >= buf->readableBytes()) { _request->_contentLen -= buf->readableBytes(); - _request->_content += std::string(buf->peek(), buf->readableBytes()); + _request->_content.append(buf->peek(), buf->readableBytes()); buf->retrieveAll(); } else { - _request->_content += std::string(buf->peek(), _request->_contentLen); + _request->_content.append(buf->peek(), _request->_contentLen); buf->retrieve(_request->_contentLen); _request->_contentLen = 0; }