Just 封装的第三方HTTP请求库。
在swift老版本中,pod安装只要加
pod 'Just'
在swift4中这样安装build失败,改成:
pod 'Just', :git => 'https://github.com/JustHTTP/Just.git', :branch => 'swift-4'
POST不加参数:
let HomeIndexListUrl = "http://xxxx.com/api/v1/app-test/list" // 接口地址
var HomeIndexList : [HomeCell] = [] // 类型是在model中建立的HomeCell,默认为空
// 视图载入方法
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
loadHomeList() // 加载列表
// 下拉刷新
self.refreshControl = UIRefreshControl() // 初始化
// 刷新的动作是loadHomeList
refreshControl?.addTarget(self, action: #selector(loadHomeList), for: .valueChanged)
}
// 加载首页接口数据
@objc func loadHomeList() {
Just.post(HomeIndexListUrl) { (r) in
guard let json = r.json as? NSDictionary else {
// 保证结果为json 并且解析为字典,否则就return
return
}
let listData = TravelList(fromDictionary: json).data! // 强制转换
self.HomeIndexList = listData.map({ (data) -> HomeCell in
// 将接口的data数据,转换成想要的字段形式,接口里面点赞数的字段名称是like ,所以是将data.like注入到想要的likes里面
return HomeCell(avatar: data.avatar, nickname: data.nickname, position: data.positon, likes: data.like)
})
// dump(self.HomeIndexList) // 打印数据
// 因为这里是异步的,所以取到数据以后 ,要更新主线程代码
OperationQueue.main.addOperation {
self.tableView.reloadData()
// 刷新过以后,刷新的动作要停止掉
self.refreshControl?.endRefreshing()
}
}
}