swift-Alamofire-使用

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
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值