2017-02-11 58 views
0

我用下面的代码使用Alamofire框架调用rest api。如何使用Almofirwe框架进行其他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中得到响应以及如何检查网络是否可达。

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

回答

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 

    } 
}