Как считать весь http-request?
Нужна помощь, написал простой http-сервер и столкнулся со следующей проблемой. Когда ко мне приходит POST request с телом, сначала считывается запрос без тела, а потом просто тело.
То есть, к примеру у меня есть такой запрос:
POST / HTTP/1.1
Host: ....
Connection: keep-alive
Content-Length: 306
hello world
И считываю я его следующим образом:
m_socket.async_receive(boost::asio::buffer(m_buffer),
boost::bind(&TCPConnection::handleReceive, shared_from_this(), _1, _2, errorHandler));
m_buffer - это vector< char >
Так вот, сначала считается
POST / HTTP/1.1
Host: ....
Connection: keep-alive
Content-Length: 306
Затем идём в handleReceive, проверяем наличие ошибки и оттуда снова вызываем метод, в котором мы читали request, и вычитываем тело реквеста. Как можно исправить?