gpt4 book ai didi

swift - Alamofire 请求链接 - 无法调用非函数类型的值 'HTTPURLResponse'

转载 作者:行者123 更新时间:2023-11-28 15:17:35 36 4
gpt4 key购买 nike

这里有一个新的 Swift 人。我正在尝试弄清楚如何将多个 Alamofire 调用链接在一起。

我需要

  1. 从服务器 1 获取授权 token
  2. 从服务器 1 获取一些数据(需要授权 token )
  3. 从服务器 2 获取授权 token
  4. 根据第 2 步中的值从服务器 2 获取更多数据。

我已经尝试按照这篇文章中的示例进行操作: Chain multiple Alamofire requests

不幸的是,这些示例都不适用于 Swift 4。

我已经决定采用选项 2,但会不断得到一个

Cannot call value of non-function type 'HTTPURLResponse?'

putRequestgetRequest 行都出错。我不知道这意味着什么或如何解决它。

我当前的代码:

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
}
}

如有任何帮助,我们将不胜感激。

最佳答案

对于 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()
}
}
}

关于swift - Alamofire 请求链接 - 无法调用非函数类型的值 'HTTPURLResponse',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574793/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com