用Alamofire进行网络请求的一段代码解析(一)
2015-02-25 00:00
411 查看
/*
向服务器发送请求:
request实际上有四个参数,但是后两个参数都设定为了默认值,所以在调用的时候只要初始化前两个参数就可以。
第一个参数是设定向服务器发起的请求的方法,通常为GET方法和POST方法。
第二个参数就是URL地址。
第三个参数是填写一些必要的信息,比如说使用密钥。
该方法返回一个Alamofire.Request对象
responseJSON方法有一个必包作为参数。这个必包有四个参数,没有返回值。但是responseJSON有一个Alamofire.request的返回值。这个返回值可以不使用。
下面的responseJSON的写法是闭包Trailing。
参数列表实际上是一个元组,所以,不关心的元素,可以用下划线忽略掉。
问题:如何实现网络请求完成后跳用responseJSON()方法?
*/
Alamofire.request(.GET, "https://api.500px.com/v1/photos", parameters:["consumer_key": str]).responseJSON() {
(_, _, JSON, _) in
let photoInfos = (
JSON?.valueForKey("photos") as [NSDictionary]
).filter({
/*
filter是一个数组的过滤函数,它有一个闭包参数。闭包参数有一个任意类型的参数,并返回一个bool值。当bool值为真时,将对应的数组的元素存放到一个新数组中。
这个过滤条件可以解读为,一个元素为字典的数组调用filter方法,将字典中key为“nsfw”的值为false的字典保存到新的数组中。
*/
($0["nsfw"] as Bool) == false
}).map(){
/*
map函数是数组的一个函数,对于每个数组中的元素进行处理。它有一个返回值为任意类型的闭包。它的返回值是一个任意类型的数组。
在这个例子里,闭包的方法是把字典的id和image_url关键字的值对PhotoInfo进行初始化,并生成一个PhotoInfo的对象数组。
*/
PhotoInfo(
id: $0["id"] as Int, url: $0["image_url"] as String
)
}
}
向服务器发送请求:
request实际上有四个参数,但是后两个参数都设定为了默认值,所以在调用的时候只要初始化前两个参数就可以。
第一个参数是设定向服务器发起的请求的方法,通常为GET方法和POST方法。
第二个参数就是URL地址。
第三个参数是填写一些必要的信息,比如说使用密钥。
该方法返回一个Alamofire.Request对象
responseJSON方法有一个必包作为参数。这个必包有四个参数,没有返回值。但是responseJSON有一个Alamofire.request的返回值。这个返回值可以不使用。
下面的responseJSON的写法是闭包Trailing。
参数列表实际上是一个元组,所以,不关心的元素,可以用下划线忽略掉。
问题:如何实现网络请求完成后跳用responseJSON()方法?
*/
Alamofire.request(.GET, "https://api.500px.com/v1/photos", parameters:["consumer_key": str]).responseJSON() {
(_, _, JSON, _) in
let photoInfos = (
JSON?.valueForKey("photos") as [NSDictionary]
).filter({
/*
filter是一个数组的过滤函数,它有一个闭包参数。闭包参数有一个任意类型的参数,并返回一个bool值。当bool值为真时,将对应的数组的元素存放到一个新数组中。
这个过滤条件可以解读为,一个元素为字典的数组调用filter方法,将字典中key为“nsfw”的值为false的字典保存到新的数组中。
*/
($0["nsfw"] as Bool) == false
}).map(){
/*
map函数是数组的一个函数,对于每个数组中的元素进行处理。它有一个返回值为任意类型的闭包。它的返回值是一个任意类型的数组。
在这个例子里,闭包的方法是把字典的id和image_url关键字的值对PhotoInfo进行初始化,并生成一个PhotoInfo的对象数组。
*/
PhotoInfo(
id: $0["id"] as Int, url: $0["image_url"] as String
)
}
}
相关文章推荐
- 用Alamofire进行网络请求的一段代码解析(二)
- Swift - 使用Alamofire通过HTTPS进行网络请求,及证书的使用
- swift 的网络请求--Alamofire框架
- Swift 2.3 【封装网络请求业务类 AFNetworking/ Alamofire】
- 使用Charles进行网络请求抓包解析
- Swift 中的网络请求问题 OC(AFNetworking) && Swift(Alamofire)
- Swift - HTTP网络操作库Alamofire使用详解1(配置,以及数据请求)
- 通过httpUtils请求网络xml数据进行解析
- ios开发网络请求Domain=com.alamofire.error.serialization.response Code=-1016报错
- Android通用网络请求解析框架.3(代码实现,公共部分)
- [Swift 工作tips] 之 使用Alamofire做网络请求时设置请求超时(timeout)时间
- Android通用网络请求解析框架.4(代码实现,分支部分)
- Swift3.0 Alamofire 网络请求的封装--->get,post,upload图片上传
- Alamofire请求网络
- 海思板子利用unixctl socket网络编程,进行接口请求和cJSON解析
- Swift 之 Alamofire 网络请求、取消请求
- Swift-->Http网络请求(NSURLSession, Alamofire)
- 同步网络请求 类封装,包括get请求和post请求,可选择是否进行JSON解析
- 使用Charles进行网络请求抓包解析
- 海思板子利用unixctl socket网络编程,进行接口请求和cJSON解析之二