我和我的公司正在开发一个 iOS 项目,我们在这个问题上遇到了困难。我们正在尝试向我们的 API 发出 POST 请求,但我们得到的只是一个成功代码,但响应类型为:
SUCCESS: { detail = "Authentication credentials were not provided."; }
这是我们的代码:
@IBAction func accept(_ sender: Any) {
var comm,cat,dist : String!
comm = observationstwee.text!
print(comm)
let catd = 7
cat = String(catd)
print(cat)
dist = distancetwee.text!
print(dist)
let parameters: Parameters = [
"comment":comm,
"category":cat,
"distance":dist,
"timestamp":time
]
let headers: HTTPHeaders = ["Authorization": "Token \(token!)"]
print(headers.debugDescription)
Alamofire.request("https://llegoelbigotes.ubiqme.es/api/new-travel",parameters: parameters, headers: headers).responseJSON {response in switch(response.result) {
case .success(_):
print(response)
print("Correct Travel")
//changeViewController(storyboard_name: "Main", viewcontroller_name: "tabBarController", context: self)
break
case .failure(_):
print("FAILURE")
}
}
}
感谢您帮助我们使用 Alamofire 4.5 和 iOS 11.2
最佳答案
我想这会奏效。
let url = "https://llegoelbigotes.ubiqme.es/api/new-travel"
Alamofire.request(
url,
method: .post,
parameters: parameters,
encoding: JSONEncoding.default,
headers: headers). validate().responseJSON{ response in
switch(response.result) {
case .success(_):
print(response.response)
print("Correct Travel")
//changeViewController(storyboard_name: "Main", viewcontroller_name: "tabBarController", context: self)
break
case .failure(_):
print("FAILURE")
}
}
如果不是,则尝试检查类型为 HTTPHeaders 的 headers 变量
let headers: HTTPHeaders = ["Authorization": "Token \(token!)"]
在这里,您要将 Token 附加到您的 token 字符串中。假设你的 token 是 XXXX 那么它就变成了 TokenXXXX。尝试像这样使用它
let headers: HTTPHeaders = ["Authorization": " \(token!)"]
然后检查。
关于ios - Alamofire POST 错误 token - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545875/