自己常用的swift网络请求工具类(二)--NSURLSession

此篇文章紧接上一篇
自己常用的swift网络请求工具类(一)--NSURLSession
http://www.jianshu.com/p/96b332d6269e

前戏已经做了80%的工作,下面把剩下的给做了

同样定义一个Network结构体----有关结构体和类的区别,我就不在这写了

1.写一个不带params参数的get请求实例方法

/**

 不带params的get请求
 - parameter url:      url
 - parameter callback: 回调
 */
static func get(url: String, andCallback callback: (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void) {
    var manager = NetworkManager(method: .GET, url: url, params: nil, callback: callback)
    manager.start()
}

2.写一个带params参数的get请求实例方法

/**

 带params的get请求
 - parameter url:      url
 - parameter params:   请求参数
 - parameter callback: 回调
 */
static func get(url: String, andParams params: [String: AnyObject], andCallback callback: (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void) {
    var manager = NetworkManager(method: .GET, url: url, params: params, callback: callback)
    manager.start()
}

3.post请求,我就不分开写了,下面的方法里请求参数可以为nil。。。
/**

 POST请求
 - parameter url:      url
 - parameter params:   请求参数---可以为nil
 - parameter callback: 回调
 */
static func post(url: String, andParams params: [String: AnyObject]?, andCallback callback: (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void) {
    var manager = NetworkManager(method: .POST, url: url, params: params, callback: callback)
    manager.start()
}

4.然后,如果大家用了swiftyJson第三方的话,也可以使用下面这个方法,在外面调用比较方便
/**
POST请求

 - parameter url:      url
 - parameter params:   请求参数---可以为nil
 - parameter callback: 回调
 */
static func post(url: String, andParams params: [String: AnyObject], andCallback callback: (result: JSON) -> Void) {
   var manager = NetworkManager(method: .POST, url: url, params: params) { (data, response, error) in
    guard let data1 = data else {
        return
    }
    let json = JSON(data: data1)
    callback(result: json)
    }
    manager.fire()
}

外面调用可以这样用。

/**
请求网络--不使用swiftyjson的回调
*/

func change() {
    let BaseUrl = "http://150.55.93.122:8081/"
    let codePath = "mobileCode/send.json"
    let params = ["mobile": "18538729927", "type": 1]

    Network.post(BaseUrl + codePath, andParams: params) { (data, response, error) in
        guard let data1 = data else {
            return
        }
        guard let str = String(data: data1, encoding: NSUTF8StringEncoding) else {
            return
        }
        print(str)
    }
}

/**
请求网络--使用swiftyjson的回调
*/

func change() {
    let BaseUrl = "http://150.55.93.122:8081/"
    let codePath = "mobileCode/send.json"
    let params = ["mobile": "18538729927", "type": 1]

    Network.post(BaseUrl + codePath, andParams: params) { (result) in
        print(result["message"].stringValue)
    }
}

你可能感兴趣的:(自己常用的swift网络请求工具类(二)--NSURLSession)