前端之家收集整理的这篇文章主要介绍了
Swift网络请求库Alamofire,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Alamofire由cnoon大神编写的基于swift的网络请求库
Github下载地址
[TOC]
运行限制:
- iOS 8.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 7.3+
CocoaPods安装:
1.下载CocoaPods
$ gem install cocoapods
CocoaPods 0.39.0+ is required to build Alamofire 3.0.0+.
2.修改Podfile文件:
@H_
502_24@
source 'https://github.com/CocoaPods/Specs.git'
platform :ios,
'9.0'
use_frameworks!
pod
'Alamofire',
'~> 3.3'
3.下载:
$ pod install
使用Alamofire
发出请求
import Alamofire
Alamofire.request(.GET,url)
响应处理
@H_
502_24@Alamofire.
request(.
GET,url,parameters: [
"key":
"value"])
.responseJSON {
response in
print(
response.
request)
print(
response.
response)
print(
response.data)
print(
response.result)
if let JSON =
response.result.value {
print(
"JSON: \(JSON)")
}
}
响应JSON处理
@H_
502_24@Alamofire.
request(.
GET,url)
.responseJSON {
response in
debugPrint(
response)
}
@H_
502_24@
public enum Method: String
@H_
502_24@let fileURL = NSBundle
.mainBundle()
.URLForResource(
"Default",withExtension:
"png")
Alamofire
.upload(
.POST,file: fileURL)
@H_
502_24@Alamofire.upload(.POST,
file: fileURL)
.progress { bytesWritten,totalBytesWritten,totalBytesExpectedToWrite
in
print(totalBytesWritten)
// This closure
is NOT called
on the main queue
for performance
// reasons. To update your ui,dispatch to the main queue.
dispatch_async(dispatch_get_main_queue()) {
print(
"Total bytes written on main queue: \(totalBytesWritten)")
}
}
.responseJSON { response
in
debugPrint(response)
}
下载
@H_
502_24@Alamofire
.download(
.GET,url) { temporaryURL,response
in
let fileManager = NSFileManager
.defaultManager()
let directoryURL = fileManager
.URLsForDirectory(
.DocumentDirectory,inDomains:
.UserDomainMask)[
0]
let pathComponent = response
.suggestedFilename
return directoryURL
.URLByAppendingPathComponent(pathComponent!)
}
HTTP头部
@H_
502_24@Alamofire.
request(.
GET,headers: [
"key":
"value"])
.responseJSON {
response in
debugPrint(
response)
}