最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Swift HTTP网络操作库SwiftHTTP使用详解1(配置,及数据请求)
时间:2016-01-28 编辑:简简单单 来源:一聚教程网
一,SwiftHTTP的说明与配置
1,什么是SwiftHTTP
SwiftHTTP本质是基于`NSURLSession`,并做了封装。使用SwiftHTTP可以让我们网络请求相关代码(如获取数据,提交数据,上传文件,下载文件等)更加简洁易用。(有点类似于我前面文章介绍的另一个网络库:Alamofire)
2,SwiftHTTP的功能特性:
(3)支持参数编码
(4)内置JSON请求序列化
(5)上传/下载文件带有进度
(6)代码简洁
3,SwiftHTTP的安装与配置
import SwiftHTTP
二,使用SwiftHTTP进行数据请求
1,GET请求
(1)不带参数
do {
let opt = try HTTP.GET("http://111com.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://111com.net?hello=world¶m2=1
let opt = try HTTP.GET("http://111com.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.111com.net", parameters: params)
opt.start { response in
//进行具体的响应操作...
}
} catch let error {
print("请求失败: \(error)")
}
3,支持自定义Http头信息(HTTP Headers)
do {
let opt = try HTTP.GET("http://www.111com.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.111com.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.111com.net ", method: .GET)
opt3.onFinish = { response in
//进行具体的响应操作...
}
operationQueue.addOperation(opt3)
} catch let error {
print("请求失败: \(error)")
}
可以使用 cancel() 方法停止单个任务:
opt2.cancel() //取消这个请求任务
也可以通过 NSOperationQueue 的 cancelAllOperations() 方法取消所有的任务:
operationQueue.cancelAllOperations() //取消所有线程操作
-
上一个: 全境封锁卡顿掉帧如何解决
相关文章
- Swift HTTP网络操作库Alamofire使用详解1(配置,以及数据请求) 12-07
- Java开发环境Tomcat (7.0)数据源配置教程 07-12
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22
- 《梦幻西游》元宵灯谜线索答案大全2024 02-22