我正在尝试使用GCDWebServer读取/写入文档目录中的文件。阅读文件似乎相当简单,我已经差不多需要了。
我想使用 POST 请求写入文件。所以我尝试为方法"POST"添加一个处理程序,但在进程块中我似乎根本无法读取请求的正文。
如果我做这样的事情:
webServer?.addHandler(forMethod: "POST", path: "/post", request: GCDWebServerDataRequest.self, processBlock: {request in
dump(request)
return GCDWebServerDataResponse(html: "An error occurred.")
})
这会将所有标头打印到控制台(在 NSObject 中(。但是如何在正文中读取变量呢?
(iOS 10.3, Swift 3, XCode 8.3.2(
self.webServer?.addHandler(forMethod: "POST", path: "/uploadfile", request: GCDWebServerMultiPartFormRequest.classForCoder(), processBlock: { (request) -> GCDWebServerResponse? in
print("ádasdnaskdnaskjd=====<")
let get = request as! GCDWebServerMultiPartFormRequest
do {
if let files = get.files {
try files.forEach({ (file) in
if let multipartFile = file as? GCDWebServerMultiPartFile {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let urlOfFile = documentsPath.appending("/(multipartFile.fileName!)");
let url = URL(fileURLWithPath: urlOfFile)
let fileManager = FileManager.default
try fileManager.moveItem(at: URL(fileURLWithPath: multipartFile.temporaryPath), to: url);
print("URL of file: (url)")
}
})
}
return GCDWebServerDataResponse.init(html: "")
} catch {
print(error.localizedDescription)
}
return GCDWebServerDataResponse.init(html: "")
})
您可以使用邮递员用正文(表单数据(对其进行测试