如何从POST请求中读取消息体

3

我正在使用Poco C++ 库,尤其是从 Poco 中的 HTTPServer,我已经能够接收 GET 请求。(我从第 24 页开始遵循了这个教程)。但是我无法弄清楚如何处理 POST 请求,特别是如何使用 poco 从 POST 请求中读取请求主体?从类HttpServerRequest的文档中我了解到可以使用方法stream来完成此操作:

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

好的,在我的代码中,我想以以下方式调用该方法:

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

但我出现了错误:
error: 把 'const Poco::Net::HTTPServerRequest' 作为 'virtual std::istream& Poco::Net::HTTPServerRequest::stream()' 的 'this' 参数传递,丢弃了限定符
我的方法调用有什么问题吗? 有人能帮忙吗?或提供一个例子?
敬礼

2
问题在于您将request对象声明为const,这意味着您只能调用同样被声明为const的方法。 - Some programmer dude
1个回答

1
我不确定,因为您剥离了代码的相关部分,但问题似乎是由于您的请求对象声明为const而导致的。HTTPServerRequest :: stream()未被声明为const,因此您不允许从const对象调用此方法。
因此,请检查以下内容:您在哪里调用HTTPServerRequest :: stream()方法?在此处请求对象来自何处?它是否被声明为常量(例如作为const函数参数传递)?在此处必须将其声明为常量吗?
问候

谢谢,这正是问题所在。对于C++新手来说,错误信息很难理解。 :) - Moonlit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接