swift程式碼之路(三)AF網路請求
阿新 • • 發佈:2019-01-28
建立資料請求類
import UIKit import AFNetworking //請求方法 /// - GET: get /// - POST: post enum RequsetMethod:String { case GET = "GET" case POST = "POST" } class SPFNetWorkManager: AFHTTPSessionManager { //單例 static let sharedTools:SPFNetWorkManager = { let instance = SPFNetWorkManager() instance.responseSerializer.acceptableContentTypes?.insert("text/html") instance.responseSerializer.acceptableContentTypes?.insert("text/plain") return instance }() // 定義請求完成的回撥的別名 typealias httptoolBack = (response:AnyObject?,error:NSError?)->() /// 請求資料 /// /// - parameter urlString: 請求地址 /// - parameter parameters: 請求引數 /// - parameter finished: 請求成功或者失敗的回撥 func request(method: RequsetMethod = .GET, urlString: String, parameters: AnyObject?, finished:httptoolBack){ // 定義請求成功的閉包 let success = { (dataTask: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in finished(response: responseObject, error: nil) } // 定義請求失敗的閉包 let failure = { (dataTask: NSURLSessionDataTask?, error: NSError) -> Void in finished(response: nil, error: error) } if method == .GET { GET(urlString, parameters: parameters, progress: nil, success: success, failure: failure) }else{ POST(urlString, parameters: parameters, progress: nil, success: success, failure: failure) } } /// 傳送請求(上傳檔案) func requestWithData(data: NSData, name: String, urlString: String, parameters: AnyObject?, finished:httptoolBack) { // 定義請求成功的閉包 let success = { (dataTask: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in finished(response: responseObject, error: nil) } // 定義請求失敗的閉包 let failure = { (dataTask: NSURLSessionDataTask?, error: NSError) -> Void in finished(response: nil, error: error) } POST(urlString, parameters: parameters, constructingBodyWithBlock: { (formData) -> Void in formData.appendPartWithFileData(data, name: name, fileName: "aa", mimeType: "application/octet-stream") }, progress: nil, success: success, failure: failure) } }
呼叫方法
let urlString = "http://192.168.3.7:8080/FreshFun/homepage.do" //建立httpTool 例項 let HttpRequest = SPFNetWorkManager.sharedTools //傳送GET請求 HttpRequest.request(RequsetMethod.GET, urlString: urlString, parameters:nil ) { (response, error) in print(response) }
資料
Optional({
goodsMoney = "22.00";
"goods_des" = "\U9999\U8549\U8089333";
"goods_img" = "/image/2016/9/8/1473340021432.png";
"goods_name" = BananaMeat;
id = 4;
marketMoney = "31.43";
})