自己常用的swift網絡請求工具類(二)--NSURLSession

此篇文章緊接上一篇
自己常用的swift網絡請求工具類(一)--NSURLSession
http://www.lxweimin.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)
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容