Swift 3 + Alamofire:iOS 10.3下POST请求获取WebService数据
在Swift 3中使用Alamofire实现POST请求获取数据
嘿,我来帮你搞定在Swift 3里用Alamofire发POST请求拿数据的事儿~下面一步步来:
第一步:先把Alamofire集成到项目里
因为你的Xcode目标是iOS 10.3,用的是Swift 3,得选适配的Alamofire版本——4.x系列(比如4.8.2就很合适)。如果还没集成,用CocoaPods最方便:
- 打开项目的Podfile,添加这行代码:
pod 'Alamofire', '~> 4.8.2'
- 终端里跑
pod install,等安装完成后用.xcworkspace文件打开项目就行。
第二步:写POST请求的核心代码
直接上完整示例,你可以根据自己的接口参数调整:
import Alamofire // 替换成你实际的WebService接口地址 let requestURL = "你的接口URL" // 准备POST请求需要的参数,按接口要求填键值对就行(比如你截图里的action、username等参数都可以放这里) let postParameters: Parameters = [ "action": "get_data", "username": "your_username", "password": "your_password" // 其他需要的参数都往这里加 ] // 发送POST请求 Alamofire.request(requestURL, method: .post, parameters: postParameters, encoding: URLEncoding.default, headers: nil) .responseJSON { response in // 处理接口返回的结果 switch response.result { case .success(let jsonValue): // 请求成功啦,先打印看看返回的数据 print("请求成功,返回内容:\(jsonValue)") // 接下来可以解析JSON,比如转成字典取字段 if let responseDict = jsonValue as? [String: Any] { let statusCode = responseDict["status"] as? Int let resultData = responseDict["data"] as? [String: Any] // 这里就可以根据业务逻辑处理数据啦 } case .failure(let error): // 请求失败,看看错误原因 print("请求出错啦:\(error.localizedDescription)") } }
几个实用小提醒
- 参数编码方式:如果接口要求用JSON格式传参,把
encoding换成JSONEncoding.default就行,不用URLEncoding.default。 - 请求头设置:如果接口需要Token或者特定的Content-Type,在
headers参数里传个字典就行,比如:
let requestHeaders: HTTPHeaders = [ "Authorization": "Bearer your_token_here", "Content-Type": "application/json" ]
然后把headers: nil改成headers: requestHeaders。
- iOS 10.3的ATS配置:如果你的接口是HTTP协议(不是HTTPS),得在Info.plist里加ATS配置,不然请求会被拦截。添加
NSAppTransportSecurity字典,然后里面加NSAllowsArbitraryLoads并设为YES,不过苹果还是推荐尽量用HTTPS哦。
内容的提问来源于stack exchange,提问作者walidddd
相关产品推荐
相关产品推荐

