Alamofire请求链接 - 不能调用非功能类型的值' HTTPURLResponse'

时间:2017-10-04 21:56:04

标签: swift alamofire swift4

这里有一个新的Swift家伙。我试图找出如何将多个Alamofire通话链接在一起。

我需要

  1. 从Server 1获取身份验证令牌
  2. 从服务器1获取一些数据(需要身份验证令牌)
  3. 从服务器2获取身份验证令牌
  4. 根据步骤2中的值从服务器2获取更多数据。
  5. 我已经尝试过关注此帖子中的示例: Chain multiple Alamofire requests

    不幸的是,这些例子都没有使用Swift 4。

    我决定继续推行选项2,但不断获得

      

    无法调用非功能类型的值' HTTPURLResponse?'

    {p {1}}和putRequest行都出现

    错误。我不知道这意味着什么或如何解决它。

    我目前的代码:

    getRequest

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

对于response闭包,你有太多的返回参数,实际上你只需要一个DataResponse参数。这段代码对我有用:

func runPutRequest() {
    let putRequest = Alamofire.request("\(URL)/get", method: .put)
    putRequest.response { [weak self] response 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] response in
        if let strongSelf = self {
            // Probably store more data
            strongSelf.processResponse()
        }
    }
}