封裝
import AFNetworking
enum RequestType: String {
case GET = "GET"
case POST = "POST"
}
class NetworkTools: AFHTTPSessionManager {
static let shareInstance: NetworkTools = {
let tools = NetworkTools()
tools.responseSerializer.acceptableContentTypes?.insert("text/html")
return tools
}()
func request(methodType: RequestType,
urlString: String,
params: [String: AnyObject]?,
success:@escaping (_ json: AnyObject?) -> Void,
fail: @escaping (_ error: Error?) -> Void) {
/// 定義成功回調閉包
let success = { (task: URLSessionDataTask, json: Any?) -> () in
Log("ok")
success(json as AnyObject?)
}
/// 定義失敗回調閉包
let failure = {(task: URLSessionDataTask?, error: Error)->() in
Log("fail")
fail(error);
}
if methodType == .GET { // GET
get(urlString, parameters: params, progress: nil, success: success, failure: failure)
} else { // POST
post(urlString, parameters: params, progress: nil, success: success, failure: failure)
}
}
}
使用
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
NetworkTools.shareInstance.request(methodType: .GET, urlString: "http://localhost/0519/index2.php", params: ["name":"aa" as AnyObject], success: { (obj) in
Log(obj ?? "沒有Success" as AnyObject)
}) { (error) in
Log(error ?? ("沒有fail" as AnyObject) as! Error)
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。