【发布时间】:2018-03-16 10:24:12
【问题描述】:
这里有一个 Swift 新人。我正在尝试弄清楚如何将多个 Alamofire 调用链接在一起。
我需要
- 从服务器 1 获取身份验证令牌
- 从服务器 1 获取一些数据(需要身份验证令牌)
- 从服务器 2 获取身份验证令牌
- 根据步骤 2 中的值从服务器 2 获取更多数据。
我已尝试按照这篇文章中的示例进行操作: Chain multiple Alamofire requests
很遗憾,这些示例都不适用于 Swift 4。
我已决定采用选项 2,但继续选择
不能调用非函数类型'
HTTPURLResponse?'的值
putRequest 和 getRequest 行均出错。我不知道这意味着什么或如何解决它。
我当前的代码:
import UIKit
import PromiseKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
let URL = "http://httpbin.org/"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func runPutRequest() {
let putRequest = Alamofire.request("\(URL)/get")
putRequest.response { [weak self] putRequest, putResponse, putData, putError in
if let strongSelf = self {
// Probably store some data
strongSelf.runGetRequest()
}
}
}
func runGetRequest() {
let getRequest = Alamofire.request("\(URL)/get", method: .get)
getRequest.response { [weak self] getRequest, getResponse, getData, getError in
if let strongSelf = self {
// Probably store more data
strongSelf.processResponse()
}
}
}
func processResponse() {
// Process that data
}
func reloadData() {
// Reload that data
}
}
任何帮助将不胜感激。
【问题讨论】: