封装
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)
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。