2016-10-04 29 views
3

我创建了一个服务器,它正在侦听端口7000.我希望我的服务器可以使用函数void handle_post1()来处理它收到的第一个msg,并使用void handle_post2()来处理第二个http request它收到。 like:如何使用不同的handle_post处理msg接收?(C++ REST SDK)

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 

我试过这样的代码,但它不起作用。 我怎么能这样做?

回答

1

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

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

现在是时候提醒一下Casablanca是微软的C++ REST SDK。而REST意味着一个stateless处理。所以你不会在这里找到任何支持依赖状态的处理。

如果你真的很想去追求,你能想象用handle_dispatcher()维持进一步计算的要求和代表取决于国家handle_post1handle_post2一些静态变量。但这并不是建议。 REST的目标是可以将不同的请求分派给不同的服务器,在这种情况下,调度程序不会产生预期的结果。如果你不想接受这种方法,那么你应该使用一个有状态的框架。

相关问题