Всем привет!
Столкнулся с такой проблемой: пишу простой http-сервер и когда ко мне приходит POST request с телом, сначала считывается запрос без тела, а потом, отдельно, считывается тело.
То есть к примеру у меня есть такой запрос:
POST / HTTP/1.1
Host: ....
Connection: keep-alive
Content-Length: 11
hello world
И считываю я его следующим образом:
void TCPConnection::startReceiving()
{
m_socket.async_receive(boost::asio::buffer(m_buffer),
boost::bind(&TCPConnection::handleReceive, shared_from_this(), _1, _2));
}
...
void TCPConnection::handleReceive(const boost::system::error_code ec, size_t bytesTransferred)
{
if (ec)
return;
handler(&m_buffer.front(), bytesTransferred); // Handler for processing some data.
startReceiving();
}
И сначала считываются хедер до символов "\r\n\r\n":
POST / HTTP/1.1
Host: ....
Connection: keep-alive
Content-Length: 11
Затем считывается тело:
hello world
Можно ли как-нибудь прочитать весь этот запрос полностью?