標籤:seo 參數 pod -- ima src param uikit span
1,首先使用cocoapods匯入,如果有不會的同學,可以去看我寫的關於cocopods使用的那篇部落格
2,直接上代碼:
import UIKitimport AFNetworking//枚舉定義要求方法enum HTTPRequestType{ case GET case POST}class AFNetTools: AFHTTPSessionManager { //單例類 static let shareInstance : AFNetTools = { let toolInstance = AFNetTools() toolInstance.responseSerializer.acceptableContentTypes?.insert("text/html") return toolInstance }() /// 封裝GET和POST 請求 /// /// - Parameters: /// - requestType: 請求方式 /// - urlString: urlString /// - parameters: 字典參數 /// - completion: 回調 func request(requestType: HTTPRequestType, urlString: String, parameters: [String: AnyObject]?, completion: @escaping (AnyObject?) -> ()) { //成功回調 let success = { (task: URLSessionDataTask, json: Any)->() in completion(json as AnyObject?) } //失敗回調 let failure = { (task: URLSessionDataTask?, error: Error) -> () in print("網路請求錯誤 \(error)") completion(nil) } if requestType == .GET { get(urlString, parameters: parameters, progress: nil, success: success, failure: failure) } else { post(urlString, parameters: parameters, progress: nil, success: success, failure: failure) } } // 將成功和失敗的回調分別寫在兩個逃逸閉包中 func request(requestType : HTTPRequestType, url : String, parameters : [String : Any], succeed : @escaping([String : Any]?) -> (), failure : @escaping(Error?) -> ()) { // 成功閉包 let successBlock = { (task: URLSessionDataTask, responseObj: Any?) in succeed(responseObj as? [String : Any]) } // 失敗的閉包 let failureBlock = { (task: URLSessionDataTask?, error: Error) in failure(error) } // Get 請求 if requestType == .GET { get(url, parameters: parameters, progress: nil, success: successBlock, failure: failureBlock) } // Post 請求 if requestType == .POST { post(url, parameters: parameters, progress: nil, success: successBlock, failure: failureBlock) } } }
以上就是二次封裝的請求類
3,調用:
@IBAction func startRequest(_ sender: Any) { let paramerts = [ "opt_type": 1, "size" : 50, "offset" : 50 ] AFNetTools.shareInstance.request(requestType: .GET, url: "http://apiv2.yangkeduo.com/operation/15/groups", parameters: paramerts, succeed: { (response) in guard let dicArray = response?["goods_list"] as? [[String: Any]] else { return } print(dicArray) }) { (error) in guard let error = error else { return } print(error) } }
列印如下:
ios開發之--swift下AFNetworking的使用