gpt4 book ai didi

c++ - 如何在 Restinio 中使用 POST 处理程序?

转载 作者:行者123 更新时间:2023-12-02 10:23:32 27 4
gpt4 key购买 nike

我想在 Windows 上使用 c++、Restinio 来处理服务器端的 POST 请求。我没有找到任何有用的示例,而且语法很难理解。请帮我提供这个项目的基本示例代码。

最佳答案

处理 HTTP POST 请求有两个方面。

第一个也是最简单的一个是为请求指定处理程序。如果您使用 express-router然后为特定路径设置 HTTP POST 处理程序很简单:

router->http_post("/some/your/path",
[](const auto & req, const auto & params) {
... // Code of your request handler here.
});

但是如果你不使用 express-router 那么你必须手动检查传入请求的方法:
auto your_handler(const restinio::request_handle_t & req) {
if(restinio::http_method_post() == req->header().method()) {
... // Code for handling HTTP POST request.
}
...
}

第二个也是最困难的方面是处理 POST 的主体(主体可通过 req->body() 方法获得)。在那里你必须检查 Content-Type HTTP header 并做出适当 react :
  • 如果 Content-Typeapplication/x-www-form-urlencoded那么你可以使用 RESTinio 的 parse_query用于将主体拆分为(键,值)对列表的辅助函数。 Here您可以找到一个如何完成的示例。
  • 如果 Content-Typemultipart/form-data那么你必须处理多部分的 body 。在这种情况下,RESTinio 的助手如 detect_boundary_for_multipart_body + split_multipart_body , 或 enumerate_parts可以使用。另见 content-disposition helper 。
  • 如果 Content-Type包含一些特定于应用程序的值(例如 application/json ),那么您必须以特定于应用程序的方式处理 POST 正文的内容(例如使用 JSON 解析器从正文中反序列化数据)。你可以看看restinio-crud-demo看到那个场景(以非常简单的形式,因为它是一个演示,而不是生产代码)。
  • 关于c++ - 如何在 Restinio 中使用 POST 处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57953811/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com