我收到了这个快速的 http 请求
var request = URLRequest(url: URL(string: "http://www.web.com/ajax/logreg.php")!)
request.httpMethod = "POST"
let pass = pass_text_field.text!.addingPercentEncoding(withAllowedCharacters: .queryValueAllowed)!
let postString = "app_reg_pass=\(pass)"
request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print("error=\(error!)")
return
}
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { print("statusCode should be 200, but is \(httpStatus.statusCode)")
print(response!)
}
let responseString = String(data: data, encoding: .utf8)
print(responseString!)
}
task.resume()
响应字符串:
Array
(
[0] => 1
[1] => Murad
)
我对此代码的响应是数组。但是当我尝试将响应视为数组时,它给了我一个错误。如何将响应转换为数组,以便我可以这样做response[0]
?
您的结果很可能以 JSON 对象的形式出现,因此您需要先对其进行反序列化,然后才能使用结果。
do {
let jsonData = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [Any]
print(jsonData[0] as! Int) // should print "1"
print(jsonData[1] as! String) // should print "Murad"
} catch {
print("An error occurred")
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句