gpt4 book ai didi

ios - 如何在 Swift 中使用 GCDWebServer 读取 POST 请求的主体

转载 作者:行者123 更新时间:2023-11-28 06:19:51 24 4
gpt4 key购买 nike

我正在尝试使用 GCDWebServer 读取/写入文档目录中的文件。阅读文件似乎相当简单,我几乎已经了解了我的需要。

我想使用 POST 请求写入文件。所以我尝试为方法“POST”添加一个处理程序,但在进程 block 中我似乎根本无法读取请求的主体。

如果我这样做:

webServer?.addHandler(forMethod: "POST", path: "/post", request: GCDWebServerDataRequest.self, processBlock: {request in

dump(request)

return GCDWebServerDataResponse(html: "An error occurred.")
})

将所有 header 打印到控制台(在 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: "")

})

你可以使用 postman 来测试它的正文(表单数据)

关于ios - 如何在 Swift 中使用 GCDWebServer 读取 POST 请求的主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com