2013-08-20 7 views
3

Я использую poco c++ libraries, особенно HTTPServer из poco, и я уже могу получать запросы GET. (я последовал за this учебником со страницы 24+). Но я не могу понять, как обращаться с запросом POST, в частности, как я могу прочитать тело запроса из запроса POST с помощью poco? Из документации класса HttpServerRequest я прочитал, что метод stream можно использовать для этого:Как читать тело из запроса POST

virtual std::istream & stream() = 0; 
Returns the input stream for reading the request body. 

хорошо, в моем коде я хочу, чтобы вызвать этот метод, как:

std::istream& istr = request.stream(); 

но я получаю ошибка:

error: passing 'const Poco::Net::HTTPServerRequest' as 'this' argument of 'virtual std::istream& Poco::Net::HTTPServerRequest::stream()' discards qualifiers

, что случилось с моим вызовом метода здесь? Может ли кто-нибудь помочь? или представить пример?

вида касается

+2

Проблема заключается в том, что вы объявили свой 'request' объекта как' const', и это означает, что вы можете вызывать только методы также объявлено 'const'. –

ответ

1

я не уверен, потому что вы раздели соответствующую часть кода, но проблема, кажется, происходит потому, что ваш запрос -объект объявлен сопзИте. HTTPServerRequest :: stream() не объявляется const и поэтому вам не разрешено вызывать этот метод из const-объекта.

Итак, проверьте следующее: где вы вызываете метод HTTPServerRequest :: stream()? Откуда возникает объект-запрос в этом месте? Объявляется ли оно постоянным (например, передано как параметр функции const)? Должно ли быть объявлено постоянным в этом месте?

Привет

+0

Спасибо, это была проблема. Сообщение об ошибке трудно понять, по крайней мере, для новичков C++. :) – Moonlit

Смежные вопросы