{"id":554543,"date":"2022-02-11T09:30:45","date_gmt":"2022-02-11T01:30:45","guid":{"rendered":"http:\/\/4563.org\/?p=554543"},"modified":"2022-02-11T09:30:45","modified_gmt":"2022-02-11T01:30:45","slug":"alamofire-%e5%92%8c-urlsession-%e7%9a%84%e4%b8%80%e4%b8%aa%e5%af%b9%e6%af%94%e4%be%8b%e5%ad%90-6","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=554543","title":{"rendered":"Alamofire \u548c URLSession \u7684\u4e00\u4e2a\u5bf9\u6bd4\u4f8b\u5b50"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1> Alamofire \u548c URLSession \u7684\u4e00\u4e2a\u5bf9\u6bd4\u4f8b\u5b50 <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : Livid <\/span>  <span><i><\/i> 47<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<p>https:\/\/medium.com\/swift-programming\/alamofire-vs-urlsession-a-comparison-for-networking-in-swift-c6cb3bc9f3b8<\/p>\n<p>\u540c\u6837\u7684\u4e00\u4e2a\u9700\u6c42\uff0c\u7528 AF \u5b9e\u73b0\uff1a<\/p>\n<pre><code>AF.request(\"https:\/\/api.mywebserver.com\/v1\/board\", method: .get, parameters: [\"title\": \"New York Highlights\"])     .validate(statusCode: 200..&lt;300)     .responseDecodable { (response: DataResponse) in         switch response.result {         case .success(let board):             print(\"Created board title is (board.title)\") \/\/ New York Highlights         case .failure(let error):             print(\"Board creation failed with error: (error.localizedDescription)\")         } } <\/code><\/pre>\n<p>\u7528 URLSession \u5b9e\u73b0\uff1a<\/p>\n<pre><code>enum Error: Swift.Error {     case requestFailed }  \/\/ Build up the URL var components = URLComponents(string: \"https:\/\/api.mywebserver.com\/v1\/board\")! components.queryItems = [\"title\": \"New York Highlights\"].map { (key, value) in     URLQueryItem(name: key, value: value) }  \/\/ Generate and execute the request let request = try! URLRequest(url: components.url!, method: .get) URLSession.shared.dataTask(with: request) { (data, response, error) in     do {         guard let data = data,             let response = response as? HTTPURLResponse, (200 ..&lt; 300) ~= response.statusCode,             error == nil else {             \/\/ Data was nil, validation failed or an error occurred.             throw error ?? Error.requestFailed         }         let board = try JSONDecoder().decode(Board.self, from: data)         print(\"Created board title is (board.title)\") \/\/ New York Highlights     } catch {         print(\"Board creation failed with error: (error.localizedDescription)\")     } } <\/code><\/pre>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>0<\/span>) <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>Alamofire \u548c URLSe&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/554543"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=554543"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/554543\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=554543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=554543"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=554543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}