|
//
// NetWorkCache.swift
// PaiAi
//
// Created by yangbin on 4/20/16.
// Copyright © 2016 FFIB. All rights reserved.
//
import UIKit
import Alamofire
let DefaultNetWorkCache = NetWorkCache()
struct NetWorkCache {
init() { }
func saveCache(_ task: URLSessionTask, params: [String : AnyObject], data: Data) {
guard let request = task.originalRequest, let url = request.url?.absoluteString else {
return
}
let cacheRequest = Alamofire.request(url, method: .get, parameters: params)
cacheRequest.cancel()
let cacheRespone = CachedURLResponse(response: task.response!, data: data)
URLCache.shared.storeCachedResponse(cacheRespone, for: cacheRequest.request!)
}
func getCache(_ task: URLSessionTask, params: [String : AnyObject]) -> [String : AnyObject]? {
guard let request = task.originalRequest, let url = request.url?.absoluteString else {
return nil
}
let cacheRequest = Alamofire.request(url, method: .get, parameters: params).request
let cache = URLCache.shared.cachedResponse(for: cacheRequest!)
guard let data = cache?.data else {
return nil
}
guard let res = try?JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as? [String: AnyObject] else {
return nil
}
return res
}
}
|