import Foundation
import Alamofire
func get(url: String, param: String, isToken: Bool = false) -> [String: Any] {
var r: [String: Any] = [String: Any]()
AF.request(url, method: .get).response(responseSerializer: DictionaryResponseSerializer()) { response in
debugPrint("Response: \(response.result)")
do {
var searchDictionary = try response.result.get()
for (key, value) in searchDictionary {
print("key: \(key) value: \(value)")
}
} catch {
print("Unexpected error: \(error).")
}
}
return r
}
func post(url: String, param: [String: String], isToken: Bool = false) -> NSDictionary {
var r = NSDictionary()
AF.request(url,
method: .post,
parameters: param,
encoding: JSONEncoding.default,
headers: HTTPHeaders(["authorization" : "token"])).response(responseSerializer: DictionaryResponseSerializer()) { response in
debugPrint("Response: \(response.description)")
}
return r
}
public final class DictionaryResponseSerializer: ResponseSerializer {
public func serialize(request: URLRequest?,
response: HTTPURLResponse?,
data: Data?, error: Error?) throws -> Dictionary<String, Any> {
guard error == nil else { throw error! }
guard let data = data, !data.isEmpty else {
guard emptyResponseAllowed(forRequest: request, response: response) else {
throw AFError.responseSerializationFailed(reason: .inputDataNilOrZeroLength)
}
return [:]
}
do {
return try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.fragmentsAllowed) as! Dictionary<String, Any>
} catch {
throw AFError.responseSerializationFailed(reason: .jsonSerializationFailed(error: error))
}
}
}
func dictionaryFind(_ needle: String, searchDictionary: Dictionary<String, Any>) -> String? {
var theNeedleDictionary = Dictionary<String, Any>()
func recurseDictionary(_ needle: String, theDictionary: Dictionary<String, Any>) -> Dictionary<String, Any> {
var returnValue = Dictionary<String, Any>()
for (key, value) in theDictionary {
if value is Dictionary<String, Any> {
if key == needle {
returnValue = value as! Dictionary<String, Any>
theNeedleDictionary = returnValue
break
} else {
returnValue = recurseDictionary(needle, theDictionary: value as! Dictionary<String, Any>)
}
}
}
return returnValue
}
// Result not used
_ = recurseDictionary(needle, theDictionary: searchDictionary)
if let value = theNeedleDictionary["value"] as? String {
return value
}
return nil
}
swift-Alamofire-使用
最新推荐文章于 2023-02-17 11:47:40 发布