如何使用Almofirwe框架进行休息api调用?

时间:2017-02-11 04:55:36

标签: ios alamofire

我使用以下代码使用Alamofire框架调用rest api。

func getHomeList()
{        
    let userId = UserDefaults.standard.string(forKey: "user_id")!

    let parameters: Parameters = [
        "my_id" : "\(userId)",
        "flage" : "1"
    ]


    UIApplication.shared.isNetworkActivityIndicatorVisible = true

    let headers: HTTPHeaders = [
        "Content-Type": "application/json",
        "Accept": "application/json"
    ]


    Alamofire.request(URL(string: "\(Constants.webApi)\(Constants.gethistory)")!, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON(completionHandler: { (response:DataResponse<Any>) in

        UIApplication.shared.isNetworkActivityIndicatorVisible = false

        self.arrList = NSMutableArray()

        if let followers = response.result.value as? NSDictionary
        {
            print(followers)

            if let status: Int = followers.object(forKey: "status") as? Int
            {

                if status == 1
                {

                    if let arrData: NSMutableArray = followers.object(forKey: "data") as? NSMutableArray
                    {

                        self.arrList  = arrData

                    }

                }
                else
                {

                    let message = MessageView.viewFromNib(layout: .MessageViewIOS8)
                    message.configureTheme(.info)
                    message.configureDropShadow()
                    message.configureContent(title: "Sorry", body: "Something went wrong. Please Try Again")

                    var messageConfig = SwiftMessages.Config()
                    messageConfig.presentationStyle = .bottom
                    messageConfig.presentationContext = .window(windowLevel: UIWindowLevelNormal)
                    messageConfig.duration = .automatic

                    SwiftMessages.show(config: messageConfig, view: message)

                }

                self.tblList.reloadData()

            }

        }
    })

    self.refreshControl.endRefreshing()
}

但我不知道我怎么没有在api中得到回应以及如何检查网络是否可达。

如果请求未成功完成,如何处理?

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码段检查请求是否成功

Alamofire.request("your URL", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) in

    switch(response.result) {
    case .success(_):
        if let data = response.result.value{
            print(response.result.value)
        }
        break

    case .failure(_):
        print(response.result.error)
        break

    }
}