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

时间:2019-07-18 06:21:38

标签: ios swift alamofire

enter image description here我尝试了一些代码,但仍然无法解决我的问题。请帮助我,我是快速代码中的新手。

let parameters: Parameters = ["skey": "XXXXXX","country_code":"91","mobile":"XXX004","user_role":"4"]


 AF.request("http://chkdin.biz/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
        }
}

bellow是服务器响应

 success({
      message = "Otp sent successfully on +917013001004";
      status = 1;
})

3 个答案:

答案 0 :(得分:3)

对于Alamo 5,您必须使用:

response.value

答案 1 :(得分: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
                }

答案 2 :(得分:0)

错误“类型”的“值”没有成员“值”是由于版本4.8.2中的Alamofire版本5,结果是类型为

的结果

如果您是通过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