前言
Swift的发送HTTP请求
发送GET请求
通过命名函数执行回调
定义回调函数
1 2 3 4 5 6 7 8 9 10 11 12
| func handle(data: Data?, response: URLResponse?, error: Error?) { if error != nil { print(error!) return } if let safeData = data { let dataString = String(data: safeData, encoding: .utf8) print(dataString!) } }
|
发起请求
<url>:请求URL
handle(data: response: error: ):回调函数
1 2 3
| let session = URLSession(configuration: .default) let task = session.dataTask(with: "<url>", completionHandler: handle(data: response: error: )) task.resume()
|
通过匿名函数执行回调
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| let session = URLSession(configuration: .default) guard let url = URL(string: "<url>") else { return } var urlRequest = URLRequest(url: url)
let task = session.dataTask(with: urlRequest) { (data: Data?, response: URLResponse?, error: Error?) in if error != nil { print(error!) return } if let safeData = data { let dataString = String(data: safeData, encoding: .utf8) print(dataString!) } }
task.resume()
|
发送POST请求
通过匿名函数执行回调
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| let session = URLSession(configuration: .default) guard let url = URL(string: "http://127.0.0.1:80/") else { return } var urlRequest = URLRequest(url: url) urlRequest.httpMethod = "POST" urlRequest.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") let bodyData = "key=value" urlRequest.httpBody = bodyData.data(using: .utf8)
let task = session.dataTask(with: urlRequest) { (data: Data?, response: URLResponse?, error: Error?) in if error != nil { print(error!) return } if let safeData = data { let dataString = String(data: safeData, encoding: .utf8) print(dataString!) } }
task.resume()
|
完成
参考文献
哔哩哔哩——疯狂滴小黑
阿里云开发者社区——1910801116781953