你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> Swift HTTP網絡操作庫SwiftHTTP使用詳解1(配置,及數據請求)

Swift HTTP網絡操作庫SwiftHTTP使用詳解1(配置,及數據請求)

編輯:IOS7技巧
本文章來為各位介紹一篇關於Swift HTTP網絡操作庫SwiftHTTP使用詳解1(配置,及數據請求)的例子,希望例子可以幫助到各位朋友。

一,SwiftHTTP的說明與配置

1,什麼是SwiftHTTP
SwiftHTTP本質是基於`NSURLSession`,並做了封裝。使用SwiftHTTP可以讓我們網絡請求相關代碼(如獲取數據,提交數據,上傳文件,下載文件等)更加簡潔易用。(有點類似於我前面文章介紹的另一個網絡庫:Alamofire)

2,SwiftHTTP的功能特性:

(1)便利的閉包API (2)支持運行隊列(NSOperationQueue)

(3)支持參數編碼
(4)內置JSON請求序列化
(5)上傳/下載文件帶有進度
(6)代碼簡潔

3,SwiftHTTP的安裝與配置 

(1)從 GitHub 上下載最新的代碼:https://github.com/daltoniam/SwiftHTTP  (2)將下載下來的源碼包中 SwiftHTTP.xcodeproj 拖拽至你的工程中 原文:Swift - HTTP網絡操作庫SwiftHTTP使用詳解1(配置,及數據請求)
(3)工程 -> General -> Embedded Binaries項,增加 SwiftHTTP.framework 原文:Swift - HTTP網絡操作庫SwiftHTTP使用詳解1(配置,及數據請求)
(4)最後,在需要使用 SwiftHTTP 的地方 import 進來就可以了


import SwiftHTTP

二,使用SwiftHTTP進行數據請求

1,GET請求

(1)不帶參數


do {
    let opt = try HTTP.GET("http://111cn.net")
    opt.start { response in
        if let err = response.error {
            print("error: \(err.localizedDescription)")
            return
        }
        print("獲取到數據: \(response.description)")
    }
} catch let error {
    print("請求失敗: \(error)")
}

(2)帶參數


do {
    //實際的url是: http://111cn.net?hello=world&param2=1
    let opt = try HTTP.GET("http://111cn.net", parameters: ["hello": "world", "param2": 1])
    opt.start { response in
        if let err = response.error {
            print("error: \(err.localizedDescription)")
            return
        }
        print("獲取到數據: \(response.description)")
    }
} catch let error {
    print("請求失敗: \(error)")
}

2,POST請求


let params = ["param": "param1",
    "array": ["first array element","second","third"],
    "num": 23,
    "dict": ["someKey": "someVal"]]
 
do {
    let opt = try HTTP.POST("http://www.111cn.net", parameters: params)
    opt.start { response in
        //進行具體的響應操作...
    }
} catch let error {
    print("請求失敗: \(error)")
}

3,支持自定義Http頭信息(HTTP Headers)


do {
    let opt = try HTTP.GET("http://www.111cn.net", parameters: ["hello": "there"],
        headers: ["header": "value"])
    opt.start { response in
        //進行具體的響應操作...
    }
} catch let error {
    print("請求失敗: \(error)")
}

三,使用操作隊列進行請求

SwiftHTTP同樣支持運行隊列(Operation Queue),我們可以把所有數據請求放到隊列中就回自動進行多線程異步請求。
同時通過 maxConcurrentOperationCount 屬性,可以設置同一時間最多允許多少個請求同時進行。


let operationQueue = NSOperationQueue()
operationQueue.maxConcurrentOperationCount = 2 //最大任務數
 
do {
    let opt1 = try HTTP.New("http://www.111cn.net", method: .GET)
    opt1.onFinish = { response in
        //進行具體的響應操作...
    }
    operationQueue.addOperation(opt1)
    
    let opt2 = try HTTP.New("http://www.baidu.com", method: .GET)
    opt2.onFinish = { response in
        //進行具體的響應操作...
    }
    operationQueue.addOperation(opt2)
    
    let opt3 = try HTTP.New("http://www.111cn.net ", method: .GET)
    opt3.onFinish = { response in
        //進行具體的響應操作...
    }
    operationQueue.addOperation(opt3)
} catch let error {
    print("請求失敗: \(error)")
}

可以使用 cancel() 方法停止單個任務:


opt2.cancel() //取消這個請求任務

也可以通過 NSOperationQueue 的 cancelAllOperations() 方法取消所有的任務:


operationQueue.cancelAllOperations() //取消所有線程操作

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved