废话不多说.直接上代码.拿来就能用
import UIKit
import AFNetworking
// 枚举
enum RequestMethod: String{
case GET = "GET"
case POST = "POST"
}
class SinaHTTPClient: AFHTTPSessionManager {
static let shareInstance: SinaHTTPClient = {
let client = SinaHTTPClient()
// 有可能设置一些东西
// client.responseSerializer.acceptableContentTypes?.insert("")
return client
}()
// 封装一个方法,通过一个 枚举来区分一下我们的 get/post
// 2 . 其他参数
func reqeust(method: RequestMethod,urlString: String,params: [String: AnyObject]?,success:((NSURLSessionDataTask, AnyObject?) -> ())?,failure:((NSURLSessionDataTask?, NSError) -> ())?){
if method == .GET {
self.GET(urlString, parameters: params, success: success, failure: failure)
} else if method == .POST {
self.POST(urlString, parameters: params, success: success, failure: failure)
}
}
//进一步封装
func reqeust(method: RequestMethod,urlString: String,params: [String: AnyObject]?,success:((json:[String: AnyObject]?) -> Void),failure:((error:NSError) -> Void)){
let successBlock = { (task:NSURLSessionDataTask, json:AnyObject?) -> Void in
// 成功之后调不调用这里????
// 2
print(json)
let dic = json as? [String: AnyObject]
}
let failurBlock = { (task:NSURLSessionDataTask?, error:NSError) -> Void in
print(error)
}
if method == .GET {
self.GET(urlString, parameters: params, success: successBlock, failure: failurBlock)
} else if method == .POST {
self.POST(urlString, parameters: params, success: successBlock, failure: failurBlock)
}
}
func upload(urlString: String,imageData: NSData,params: [String: AnyObject]?,success:((json:[String: AnyObject]?) -> Void),failure:((error:NSError) -> Void)){
self.POST(urlString, parameters: params, constructingBodyWithBlock: { (formdata) -> Void in
//回想一下
formdata.appendPartWithFileData(imageData, name: "pic", fileName: "xxxyyy", mimeType: "image/jpeg")
}, success: { (_ , JSON) -> Void in
printLog(JSON)
success(json: JSON as? [String: AnyObject])
}) { (_ , error ) -> Void in
printLog(error)
failure(error: error)
}
}
}
发送POST,GET请求调用的时候:
上传图片数据调用的时候: