【发布时间】:2019-03-16 00:24:14
【问题描述】:
我将 Alamofire 4.7 与 Swift 4.2 一起使用,自从将我的代码转换为 Swift 4.2 之后,Alamofire 就完全不起作用了。
我有这样一个简单的电话:
func createUser(username: String, email: String, password: String, passwordConfirm: String, completion: @escaping (_ result: String) -> Void)
{
let parameters: Parameters = [
"username" : username,
"email" : email,
"password" : password,
"confirm_password" : passwordConfirm
]
Alamofire.request(webservice + "?action=register", method: HTTPMethod.post, parameters: parameters, encoding: URLEncoding.httpBody, headers: [:]).responseJSON { response in
if(response.error == nil)
{
if let result = response.result.value {
let jsonData = result as! NSDictionary
if(jsonData["response"] == nil)
{
completion("")
}
else
{
completion(jsonData["response"] as! String)
}
}
}
else
{
completion((response.error?.localizedDescription)!)
}
}
}
所有参数都被正确填充,在检查我的 api 后,它调用了正确的方法 (?action=register) 但我的帖子是空的。我做错了什么?
【问题讨论】:
-
您是否尝试过将您的 URL 放入 Postman 之类的内容中,以查看您访问的 API 是否有任何反作用?
-
是的,我做到了......我使用了 Postman,它返回了预期的结果。
-
另一个想法是清理缓存(可能关闭 Xcode,从命令行 nuke 派生数据)并重新打开项目。另一个想法是更新你的 CocoaPods/Carthage/whatever 以防自动 4.2 Swift 更新发生一些奇怪的事情。最新的Alamofire is 4.7.3 看起来像是 Swift 4.2 更新。
-
你试过转换后重启你的笔记本电脑吗?
-
你没有在后端获取任何参数,这是由客户端发送的。是你面临的问题吗?