【发布时间】:2016-10-05 14:44:25
【问题描述】:
在过去的Alamofire 版本中,对于发送方法、标头和参数,我曾经这样做过:
Alamofire.request(.GET, URLRequest, headers:headers, parameters: parameters)
但是版本 4 和 swift 3 是不同的。 如何设置方法、发送标头和参数?
【问题讨论】:
在过去的Alamofire 版本中,对于发送方法、标头和参数,我曾经这样做过:
Alamofire.request(.GET, URLRequest, headers:headers, parameters: parameters)
但是版本 4 和 swift 3 是不同的。 如何设置方法、发送标头和参数?
【问题讨论】:
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)
}
【讨论】:
迁移指南解释的很好,但是示例中没有标头,为了避免混淆,下面我添加一个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 中找到了此信息,因此,如果您有与请求中的标头相关的问题,请前往那里查看。
【讨论】: