我创建了一个上传任务,它工作得很好,我确实从我的PHP文件中得到了正确的响应。
但不知何故,我在使用收到的数据响应时遇到了麻烦。
我期望返回的字符串是“7”,但实际上我得到了“7\n”。而且我甚至不能拆分字符串以将“7\n”转换为int16 7。
func validateUser(user: User) {
(...)
let url = URL(string: "exampleURL")
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.setValue("text/html", forHTTPHeaderField: "Content-Type")
let task = URLSession.shared.uploadTask(with: request, from: jsonData) { data, response, error in
if let error = error {
print ("error: \(error)")
return
}
guard let response = response as? HTTPURLResponse,
(200...299).contains(response.statusCode) else {
print ("server error")
return
}
if let mimeType = response.mimeType,
let data = data,
let dataString = String(data: data, encoding: .utf8) {
print ("got data: \(dataString)") // "7\n"
self.globalUserID = Int16(dataString) ?? 0 // always 0
// proceed with usage of response
}
}
task.resume()
}
我也不太理解函数完成后如何处理返回值,所以我尝试在函数内部直接使用它(写入self.globalUserID)
任何帮助都将不胜感激
1条答案
按热度按时间c0vxltue1#
我想我找到了一个办法
ID仍然是可选的,但到目前为止还不错:)