过去我曾使用GCDWebServer处理传递查询参数的GET请求。我现在需要设置它来处理传递JSON对象的POST请求。我找不到如何使用GCDWebServer实现这一点的直接示例或描述,但我发现请求类型GCDWebServerDataRequest似乎正是我所需要的。问题是,没有一个可用的GCDWebServer方法允许我声明一个采用该类型的处理程序。我也没有通过调整GCDWebServer声明走多远。我也没有找到任何相关的帖子。有人有成功完成这项工作的经验吗?
在尝试各种方法解决问题的早期,我一定忽略了一个显而易见的方法:在对"addHandlerForMethod"的调用中,简单地将请求类参数作为GCDWebServerDataRequest.self传递。这基本上做到了!这是示例代码:
let webServer = GCDWebServer()
webServer.addHandlerForMethod("POST",
path: myPath,
requestClass: GCDWebServerDataRequest.self) { (request: GCDWebServerRequest!, completionBlock: GCDWebServerCompletionBlock!) in
self.myHandler(request, completionBlock: completionBlock)}
myHandler方法现在接收请求对象作为GCDWebServerDataRequest