swift代码之路(三)AF网络请求

来源:互联网 发布:视频cms 编辑:程序博客网 时间:2024/06/05 20:54

创建数据请求类

[objc] view plain copy 在CODE上查看代码片派生到我的代码片
  1. import UIKit  
  2. import AFNetworking  
  3. //请求方法  
  4. /// - GET:  get  
  5. /// - POST: post  
  6. enum RequsetMethod:String {  
  7.     case GET = "GET"  
  8.     case POST =  "POST"  
  9. }  
  10.   
  11. class SPFNetWorkManager: AFHTTPSessionManager {  
  12.       
  13.     //单例  
  14.     static let sharedTools:SPFNetWorkManager = {  
  15.         let instance = SPFNetWorkManager()  
  16.         instance.responseSerializer.acceptableContentTypes?.insert("text/html")  
  17.         instance.responseSerializer.acceptableContentTypes?.insert("text/plain")  
  18.         return instance  
  19.     }()  
  20.     // 定义请求完成的回调的别名  
  21.     typealias httptoolBack = (response:AnyObject?,error:NSError?)->()  
  22.       
  23.     /// 请求数据  
  24.     ///  
  25.     /// - parameter urlString:  请求地址  
  26.     /// - parameter parameters: 请求参数  
  27.     /// - parameter finished:   请求成功或者失败的回调  
  28.       
  29.     func request(method: RequsetMethod = .GET, urlString: String, parameters: AnyObject?, finished:httptoolBack){  
  30.           
  31.           
  32.         // 定义请求成功的闭包  
  33.         let success = { (dataTask: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in  
  34.             finished(response: responseObject, error: nil)  
  35.         }  
  36.           
  37.         // 定义请求失败的闭包  
  38.         let failure = { (dataTask: NSURLSessionDataTask?, error: NSError) -> Void in  
  39.             finished(response: nil, error: error)  
  40.         }  
  41.           
  42.         if method == .GET {  
  43.               
  44.             GET(urlString, parameters: parameters, progress: nil, success: success, failure: failure)  
  45.         }else{  
  46.             POST(urlString, parameters: parameters, progress: nil, success: success, failure: failure)  
  47.         }  
  48.     }  
  49.       
  50.       
  51.       
  52.       
  53.     /// 发送请求(上传文件)  
  54.       
  55.     func requestWithData(data: NSData, name: String, urlString: String, parameters: AnyObject?, finished:httptoolBack) {  
  56.         // 定义请求成功的闭包  
  57.         let success = { (dataTask: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in  
  58.             finished(response: responseObject, error: nil)  
  59.         }  
  60.           
  61.         // 定义请求失败的闭包  
  62.         let failure = { (dataTask: NSURLSessionDataTask?, error: NSError) -> Void in  
  63.             finished(response: nil, error: error)  
  64.         }  
  65.           
  66.         POST(urlString, parameters: parameters, constructingBodyWithBlock: { (formData) -> Void in  
  67.             formData.appendPartWithFileData(data, name: name, fileName"aa", mimeType"application/octet-stream")  
  68.             }, progress: nil, success: success, failure: failure)  
  69.     }  
  70. }  

调用方法
[objc] view plain copy 在CODE上查看代码片派生到我的代码片
  1. let urlString = "http://192.168.3.7:8080/FreshFun/homepage.do"  
  2.         //创建httpTool 实例  
  3.         let HttpRequest = SPFNetWorkManager.sharedTools  
  4.         
  5.         //发送GET请求  
  6.         HttpRequest.request(RequsetMethod.GET, urlString: urlString, parameters:nil ) { (response, error) in  
  7.             print(response)  
  8.         }  

数据
[objc] view plain copy 在CODE上查看代码片派生到我的代码片
  1. Optional({  
  2.             goodsMoney = "22.00";  
  3.             "goods_des" = "\U9999\U8549\U8089333";  
  4.             "goods_img" = "/image/2016/9/8/1473340021432.png";  
  5.             "goods_name" = BananaMeat;  
  6.             id = 4;  
  7.             marketMoney = "31.43";  
  8.         }) 
0 0