首页 > 代码库 > Swift3.0封装 AFN 的 GET&POST网络请求

Swift3.0封装 AFN 的 GET&POST网络请求

////  PSNetWorkManage.swift//  WeiBoSwift////  Created by 思 彭 on 16/9/25.//  Copyright © 2016年 思 彭. All rights reserved.//import UIKitimport AFNetworking// Swift的枚举支持任意数据类型,不需要,分隔enum PSHTTPMethod{    case GET    case POST}/// 网络管理工具class PSNetWorkManage: AFHTTPSessionManager {    // 单例    static let shared = PSNetWorkManage()        // MARK:- get请求    func getWithPath(path: String,paras: Dictionary<String,Any>?,success: @escaping ((_ result: Any) -> ()),failure: @escaping ((_ error: Error) -> ())) {                var i = 0        var address = path        if let paras = paras {                        for (key,value) in paras {                                if i == 0 {                                        address += "?\(key)=\(value)"                }else {                                        address += "&\(key)=\(value)"                }                                i += 1            }        }                let url = URL(string: address.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!)                let session = URLSession.shared                let dataTask = session.dataTask(with: url!) { (data, respond, error) in                        if let data =http://www.mamicode.com/ data {                                if let result = try? JSONSerialization.jsonObject(with: data, options: .allowFragments){                                        success(result)                }            }else {                                failure(error!)            }        }        dataTask.resume()    }            // MARK:- post请求    func postWithPath(path: String,paras: Dictionary<String,Any>?,success: @escaping ((_ result: Any) -> ()),failure: @escaping ((_ error: Error) -> ())) {                var i = 0        var address: String = ""                if let paras = paras {                        for (key,value) in paras {                                if i == 0 {                                        address += "\(key)=\(value)"                }else {                                        address += "&\(key)=\(value)"                }                                i += 1            }        }        let url = URL(string: path)        var request = URLRequest.init(url: url!)        request.httpMethod = "POST"        print(address)        request.httpBody = address.data(using: .utf8)        let session = URLSession.shared        let dataTask = session.dataTask(with: request) { (data, respond, error) in                        if let data =http://www.mamicode.com/ data {                                if let result = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) {                                        success(result)                }                            }else {                failure(error!)            }        }        dataTask.resume()       }}

 

Swift3.0封装 AFN 的 GET&POST网络请求