如何在 swift5 和 Alamofire 5 beta 版本中获取和保存响应?

How to get and save the response in swift5 and Alamofire 5 beta version?

我尝试了一些代码,但我的问题仍未解决。请帮助我,我是 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;
})

请尝试以下代码:

         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
                }

类型 'Result' 的错误值没有成员 '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

对于 Alamo 5,您必须使用:

response.value