如何使用不同的handle_post处理msg接收?(c++ rest sdk)

How to use different handle_post to process msg receives?(C++ REST SDK)

本文关键字:接收 c++ rest sdk msg 处理 何使用 handle post      更新时间:2023-10-16

我创建了一个监听端口7000的服务器。我希望我的服务器可以使用函数void handle_post1()来处理它收到的第一个消息,并使用void handle_post2()来处理它收到的第二个http request。如:

 listener.support(methods::POST, handle_post1);//if this is the first msg I receive
 listener.support(methods::POST, handle_post2);//if this is the second msg I receive

我试着这样编码,但它不起作用。我怎么能这么做呢?

侦听器将在服务器端处理请求。使用support(),您不处理特定的请求,但您为所有后续请求添加处理程序。

在你的问题中,你打算根据请求的相对顺序以不同的方式处理请求:第一个应该由handle_post1处理,第二个应该由handle_post2处理。这意味着您希望处理依赖于服务器状态。

现在是时候提醒大家卡萨布兰卡是微软的c++ REST SDK了。而REST意味着一个无状态的处理。因此,您将在那里找不到任何对依赖于状态的处理的支持。

如果你真的想继续,你可以想象使用一个handle_dispatcher()来维护一些静态变量来计算请求,并根据状态进一步委托给handle_post1handle_post2。但我们不建议这样做。REST的目标是可以将不同的请求分派到不同的服务器,在这种情况下,您的调度程序将不会产生预期的结果。如果您不想采用这种方法,那么应该使用有状态框架。