Alamofire 是由AFNetworking的作者Matt Thompson使用swift写的一个网络请求库。Git地址https://github.com/Alamofire/Alamofire
1.安装Alamofire
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Alamofire', '~> 4.7'
end
cd /..../yourprojectpath
pod install
2.导入Alamfire
import Alamfire
3.基本请求
3.1 get请求
Alamofire.request("http://www.webpath.com", method: .get, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON { (response) in
if (response.error == nil){
print("Alamofire请求成功:\(response.result.value)")
}else{
print("Alamofire请求失败:\(response.error ?? "" as! Error)")
}
}
3.2 post请求
Alamofire.request("http://www.webpath.com", method: .post, parameters: nil, encoding: URLEncoding.default, headers: nil).responseJSON { (response) in
if (response.error == nil){
print("Alamofire请求成功:\(response.result.value)")
}else{
print("Alamofire请求失败:\(response.error ?? "" as! Error)")
}
}
4.http请求错误(iOS9以后,苹果把原http协议改成了https协议,所以不能直接在http协议下GET/POST)
解决方案之一:
直接编辑工程文件下的Info.plist文件,加入以下代码
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
解决方案之二:
1.在Xcode里选中info.plist,点击右边的information Property List 后边的加号
2.写入App Transport Security Settings后,点击右键添加Add Row,选中Allow Arbitrary Loads添加,直接回车
3.将Allow Arbitrary Loads默认的值改成YES
其实效果是一样的,打开info.plist文件,发现方案一中的文字已经自动添加