如何在 swift5 和 Alamofire 5 beta 版本中获取和保存响应?
Posted
技术标签:
【中文标题】如何在 swift5 和 Alamofire 5 beta 版本中获取和保存响应?【英文标题】:How to get and save the response in swift5 and Alamofire 5 beta version? 【发布时间】:2019-07-18 06:21:38 【问题描述】:我尝试了一些代码,但仍然没有解决我的问题。请帮助我,我是 swift 代码的新手。
let parameters: Parameters = ["skey": "XXXXXX","country_code":"91","mobile":"XXX004","user_role":"4"]
AF.request("http://XXXXX/dev/clinic/api/v1/login_otp?", method: .get, parameters: parameters)
.responseJSON (response) in
switch response.result
case .success:
if let JSON = response.result.value as? [String: Any]
let status = JSON["status"] as! String
print(status)
case .failure(let error): break
// error handling
下面是服务器响应
success(
message = "Otp sent successfully on +9170XXXX1004";
status = 1;
)
【问题讨论】:
你有什么问题..请解释一下 Xcode : Alamofire get String response的可能重复 你遇到了什么问题。 我无法打印状态。 如果让 JSON = response.result.value 为? [String: Any] 在这里我收到错误“'Result' 类型的值没有成员 'value'” 【参考方案1】:对于 Alamo 5,您必须使用:
response.value
【讨论】:
这是修复;在 AlamoFire 5 中从 response.result.value 更改为 this 谢谢...多年来我一直在寻找解决方案。这非常简单快捷!【参考方案2】:请尝试以下代码:
switch response.result
case .success(let value):
if let JSON = value as? [String: Any]
let status = JSON["status"] as! String
print(status)
case .failure(let error): break
// error handling
【讨论】:
@SivaSankar 对不起,再次检查代码,我已修复 =)let JSON = value as? [String: Any]
【参考方案3】:
'Result' 类型的错误 Value has no member 'value' 是由于 Alamofire 版本 5,在 4.8.2 版本中结果类型为
如果您通过 pod 安装了 Alamofire,那么您应该获得 4.8.2 版本,您的代码可以正常运行。
Alamofire.request("https://jsonplaceholder.typicode.com/todos/1", method: .get)
.responseJSON (response) in
switch response.result
case .success(_):
if let JSON = response.result.value as? [String: Any]
let status = JSON["completed"] as! Bool
print(status)
case .failure(_): break
在这种情况下 Result 类型不是 Result 并使用 Alamofire 代替 AF
【讨论】:
在我的 Xcode pod 安装中有一些问题。如果你有任何版本的 alamofire 可以分享给我。 @SivaSankar 你不需要在我的 Podfile 中提及 Podfile 中 Alamofire 的版本,我只是提到 pod 'Alamofire',默认情况下,它将安装最新的稳定版本 4.8.2。将我的答案标记为有效,如果有效,请告诉我。以上是关于如何在 swift5 和 Alamofire 5 beta 版本中获取和保存响应?的主要内容,如果未能解决你的问题,请参考以下文章
Swift 5.1 和 Alamofire 5.1:GET 方法错误
使用 PHP 在 Swift 5 中使用 Alamofire 接收图像上传
如何使用 Swift 5 在 Xcode 10.2.1 中添加 alamofire