我使用以下代码使用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中得到回应以及如何检查网络是否可达。
如果请求未成功完成,如何处理?
答案 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
}
}