你应该看看这个Tutorial.
它非常基础,但您将学习如何使用 URLSession 类。
我已经编写了这个非常基本的帮助类来发送请求:
class WebRequest
{
static func getAsync(_ urlString: String, callback: @escaping (Data?, Error?) -> Void)
{
let url = URL(string: urlString)
let request = URLRequest(url: url!, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 10)
let task = URLSession.shared.dataTask(with: request, completionHandler:
{
data, response, error in
callback(data, error)
})
task.resume()
}
static func postAsync(_ urlString: String, callback: @escaping (Data?, HTTPURLResponse?) -> Void)
{
let url = URL(string: urlString )
let request = NSMutableURLRequest(url: url!)
request.httpMethod = "POST"
request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData
let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler:
{
data, response, error in
let httpResponse = response as? HTTPURLResponse
callback(data, httpResponse)
})
task.resume()
}
}
用法:
WebRequest.getAsync(url)
{
data, error in
if let error = error
{
// Error Handling
}
else if let data = data
{
let decoder = JSONDecoder()
let myObject = try? decoder.decode(YourCodableDataModelClass.self, from: data)
if let object = myObject
{
// Your JSON was parsed successfully.
}
else
{
// Object coould not be loaded.
}
}
}
为了让它工作,你的类应该实现Codable 协议。