【问题标题】:How to read body from POST request如何从 POST 请求中读取正文
【发布时间】:2023-04-07 08:22:01
【问题描述】:

我正在使用 poco c++ libraries ,尤其是来自 poco 的 HTTPServer ,我已经能够接收 GET 请求。 (我从第 24 页开始遵循 this 教程)。但我不知道如何处理 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: passing 'const Poco::Net::HTTPServerRequest' as 'this' argument of 'virtual std::istream& Poco::Net::HTTPServerRequest::stream()' discards qualifiers

我的方法调用有什么问题? 有人可以帮忙吗?或者举个例子?

亲切的问候

【问题讨论】:

  • 问题是您将request 对象声明为const,这意味着您只能调用也声明为const 的方法。

标签: c++ http http-post poco-libraries


【解决方案1】:

我不确定,因为您删除了代码的相关部分,但问题似乎是因为您的 request-object 被声明为 const。 HTTPServerRequest::stream() 未声明为 const,因此您不能从 const 对象调用此方法。

因此请检查以下内容:您在哪里调用方法 HTTPServerRequest::stream()?请求对象从哪里来?它是否被声明为常量(例如,作为 const 函数参数传递)?必须在这个地方声明为常量吗?

问候

【讨论】:

  • 谢谢,这正是问题所在。错误信息很难理解,至少对于 c++ 新手来说。 :)
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 2018-07-06
  • 2019-11-30
  • 2020-05-16
  • 2018-10-30
  • 2011-12-27
  • 2021-12-04
  • 1970-01-01
相关资源
最近更新 更多