gpt4 book ai didi

ios - 从 alamofire 返回 token 字符串

转载 作者:行者123 更新时间:2023-11-30 13:21:48 24 4
gpt4 key购买 nike

我正在尝试将存储在我的 django-rest 框架中的临时 token 保存起来以执行一些 GET/POST 请求。这是我的代码:

class API {

let apiBaseUrl = "https://myhost.tld"

func getToken(loginData: NSDictionary ,completionHandler: (NSDictionary?, NSError?) -> ()) {
makePOST(loginData, section: "api-token-auth", completionHandler: completionHandler)
}

func getList(tokenStr: String, completionHandler: (NSDictionary?, NSError?) -> ()) {
makeGET(tokenStr, section: "api/list", completionHandler: completionHandler)
}

func makePOST(login: NSDictionary, section: String, completionHandler: (NSDictionary?, NSError?) -> ()) {

Alamofire.request(.POST, "\(apiBaseUrl)/\(section)/", parameters: login as! [String : String])
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value as? NSDictionary, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
}

func makeGET(token: String?=nil, section: String, completionHandler: (NSDictionary?, NSError?) -> ()) {

Alamofire.request(.POST, "\(apiBaseUrl)/\(section)/", headers: ["Authorization":"Token \(token)"])
.responseJSON { response in
switch response.result {
case .Success(let value):
completionHandler(value as? NSDictionary, nil)
case .Failure(let error):
completionHandler(nil, error)
}
}
}
}

因此,当我创建对象类型 API() 时,我可以在调用 getToken 时查看返回的 token ,但我不知道如何存储它以将其传递给 api.getList(token) 函数:

let api = API()
api.getToken(["username":"blah","password":"blah"]) { responseObject, error in
debugPrint("responseObject = \(responseObject!["token"])")
return
}...

谢谢!

最佳答案

尝试以下代码:

let api = API()
api.getToken(["username":"blah","password":"blah"], { responseObject, error in
print("responseObject = \(responseObject!["token"])")
api.getList(responseObject!["token"], { responseObject, error in
}
)
})

关于ios - 从 alamofire 返回 token 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37709054/

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