【发布时间】:2018-04-04 02:37:42
【问题描述】:
该方法工作正常,它在后端执行我想要的操作,但我在控制台中收到以下错误:
错误域=NSCocoaErrorDomain 代码=3840 “没有值。” UserInfo={NSDebugDescription=无值。}
上述错误在catch中被捕获。
我读出了建议为标题增加价值的类似问题,但也没有修复它。
let serverURL = URL(string: "https://xxx/xxx/xxx/xxx/xxx/email")
self.request = URLRequest(url:serverURL!)
self.request?.httpMethod = "POST"
self.request?.addValue("application/json", forHTTPHeaderField: "content-type")
self.request?.addValue("application/json", forHTTPHeaderField: "Accept")
do {
self.request?.httpBody = try JSONSerialization.data(withJSONObject: postContent, options: .prettyPrinted)
} catch let error {
print(error.localizedDescription)
return
}
json 格式如下:postContent: [String: String], ["email": "myemail@domain.com"]
任务代码:
let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in
if (self.activityIndicator != nil) {
self.removeActivityIndicator(activityIndicator: self.activityIndicator!)
}
guard let data = data else {return}
do {
let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:String]
if let parseJSON = json {
self.alertMessage(message: "Please check your email for instructions.")
}
} else {
self.alertMessage(message: "Invalid email address!")
}
} catch {
self.alertMessage(message: "Could not send request. Try again!")
print(error)
}
}
task.resume()
【问题讨论】: