Как считать весь 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, и вычитываем тело реквеста. Как можно исправить?


Ответы (0 шт):