如何使用不同的 handle_post 来处理接收到的消息?(C++ REST SDK)
How to use different handle_post to process msg receives?(C++ REST SDK)
我创建了一个侦听端口 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
处理。这意味着您希望处理取决于服务器状态。
现在是提醒 Casablanca is Microsoft's C++ REST SDK. And REST implies a stateless 处理的好时机。所以你不会在那里找到任何对状态相关处理的支持。
如果你真的想继续,你可以想象使用一个 handle_dispatcher()
维护一些静态变量来计算请求并进一步委托给 handle_post1
或 handle_post2
取决于状态。但这真的不建议。 REST 的目标是可以将不同的请求分派到不同的服务器,在这种情况下,您的分派器不会产生预期的结果。如果您不想采用这种方法,则应使用有状态框架。
我创建了一个侦听端口 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
处理。这意味着您希望处理取决于服务器状态。
现在是提醒 Casablanca is Microsoft's C++ REST SDK. And REST implies a stateless 处理的好时机。所以你不会在那里找到任何对状态相关处理的支持。
如果你真的想继续,你可以想象使用一个 handle_dispatcher()
维护一些静态变量来计算请求并进一步委托给 handle_post1
或 handle_post2
取决于状态。但这真的不建议。 REST 的目标是可以将不同的请求分派到不同的服务器,在这种情况下,您的分派器不会产生预期的结果。如果您不想采用这种方法,则应使用有状态框架。