如何在 Alamofire 4 和 Swift 3 中设置方法、标题、参数
Posted
技术标签:
【中文标题】如何在 Alamofire 4 和 Swift 3 中设置方法、标题、参数【英文标题】:How to set method, header, parameter in Alamofire 4 and Swift 3 【发布时间】:2016-10-05 14:44:25 【问题描述】:在过去的Alamofire
版本中,对于发送方法、标头和参数,我曾经这样做过:
Alamofire.request(.GET, URLRequest, headers:headers, parameters: parameters)
但是版本 4 和 swift 3 是不同的。 如何设置方法、发送标头和参数?
【问题讨论】:
【参考方案1】:Alamofire github 的迁移指南很好地解释了这一点。
看这里:
// Alamofire 3
let parameters: [String: AnyObject] = ["foo": "bar"]
Alamofire.request(.GET, urlString, parameters: parameters, encoding: .JSON)
.progress bytesRead, totalBytesRead, totalBytesExpectedToRead in
print("Bytes: \(bytesRead), Total Bytes: \(totalBytesRead), Total Bytes Expected: \(totalBytesExpectedToRead)")
.validate request, response in
// Custom evaluation closure (no access to server data)
return .success
.responseJSON response in
debugPrint(response)
// Alamofire 4
let parameters: Parameters = ["foo": "bar"]
Alamofire.request(urlString, method: .get, parameters: parameters, encoding: JSONEncoding.default)
.downloadProgress(queue: DispatchQueue.utility) progress in
print("Progress: \(progress.fractionCompleted)")
.validate request, response, data in
// Custom evaluation closure now includes data (allows you to parse data to dig out error messages if necessary)
return .success
.responseJSON response in
debugPrint(response)
【讨论】:
【参考方案2】:迁移指南解释的很好,但是示例中没有标头,为了避免混淆,下面我添加一个GET请求的示例来添加它们。
Alamofire.request(URL, method: .get, parameters: parameters, headers: headers)
.validate request, response, data in
return .success
.responseJSON response in
switch response.result
case .success:
// do something
break
case .failure(let error):
// handle error
break
我在here 中找到了此信息,因此,如果您有与请求中的标头相关的问题,请前往那里查看。
【讨论】:
以上是关于如何在 Alamofire 4 和 Swift 3 中设置方法、标题、参数的主要内容,如果未能解决你的问题,请参考以下文章
Alamofire 4 请求返回 NSArray,无法弄清楚如何在 Swift 3 中使用 SwiftyJSON 进行解析
如何使用参数 swift 3.0 Alamofire 4.0 调用邮政服务?
使用 Swift 3 和 Alamofire 4 后没有得到响应
Swift 3 的 ObjectMapper 和 Alamofire 问题 Alamofire 4 的 Alamofire 版本