Swift HTTP网络操作库SwiftHTTP使用详解1(配置,及数据请求)

本文章来为各位介绍一篇关于Swift HTTP网络操作库SwiftHTTP使用详解1(配置,及数据请求)的例子,希望例子可以帮助到各位朋友。

一,SwiftHTTP的说明与配置

1,什么是SwiftHTTP

SwiftHTTP本质是基于`NSURLSession`,并做了封装。使用SwiftHTTP可以让我们网络请求相关代码(如获取数据,提交数据,上传文件,下载文件等)更加简洁易用。

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(配置,及数据请求)_第1张图片

(3)工程 -> General -> Embedded Binaries项,增加 SwiftHTTP.framework

Swift HTTP网络操作库SwiftHTTP使用详解1(配置,及数据请求)_第2张图片

(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)")

}

}catchlet error {

print("请求失败: \(error)")

}

(2)带参数

do {

//实际的url是: http://111cn.net?hello=world¶m2=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() //取消所有线程操作

你可能感兴趣的:(Swift HTTP网络操作库SwiftHTTP使用详解1(配置,及数据请求))