import UIKit
class InternetDataRequeset { //Post请求时, Body字符串转换成字典方法 //设置类型为静态方法 static func changeStringToDictionary(string : String)->NSDictionary{ let dic: NSMutableDictionary = NSMutableDictionary() let array = string.componentsSeparatedByString("&") for str : String in array{ let tempArray = str.componentsSeparatedByString("=") dic.setObject(tempArray[1], forKey: tempArray[0]) } return dic } //静态网络请求方法, GET请求, POST请求均适用, POST需要参数字典, 可由上一个方法获得 //urlString: 网络请求链接字符串 //bodyDic: Post请求参数字典(可选类型) //data()->(): 闭包函数, 基本等价于OC中的block, 用于数据的回调. static func getDataByString(var urlString urlSting: String, bodyDic: NSDictionary!, data: (data: AnyObject) -> ()){ //字符串的转码 urlSting = urlSting.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())! //创建管理者对象 let manager = AFHTTPSessionManager() //设置允许请求的类别 manager.responseSerializer.acceptableContentTypes = NSSet(objects: "text/plain", "text/json", "application/json","text/javascript","text/html", "application/javascript", "text/js") as? Set<String> //开始请求 if bodyDic == nil { manager.GET(urlSting, parameters: nil, progress: { (downloadProgress: NSProgress) -> Void in }, success: { (task: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in data(data: responseObject!) }, failure: { (task: NSURLSessionDataTask?, error : NSError) -> Void in print("请求失败") }) } else{ manager.POST(urlSting, parameters: bodyDic, progress: { (downloadProgress: NSProgress) -> Void in }, success: { (task: NSURLSessionDataTask, responseObject: AnyObject?) -> Void in data(data :responseObject!) }, failure: { (task: NSURLSessionDataTask?, error : NSError) -> Void in print("请求失败") }) } } }
这只是基本的网络请求, 如果需要,对请求头尾进行加工, 修改下函数即可.