Swift Alamofire的简单封装

在swift中,Alamofire是最常用的网络请求框架。导入的话推荐cocoapods,如果cocoapods版本过低,是无法导入最新的Alamofire,在swift3.0中会一片红色警报。至于如何升级cocoapods版本和cocoapods使用,请自行百度,网上方法一堆。

Alamofire简单封装

import UIKit
import Alamofire

class Realhttp {
    static let shareInstance = Realhttp()
    private init(){}
}

extension Realhttp {
    // MARK: 根据项目需求,看是否要返回failrue
    // get请求
    func getRequest(url:String, parameters:[String : Any]? = nil,success:@escaping (_ response : String)->(), failure : @escaping (_ error : Error)->()){
        Alamofire.request(url, method: .get, parameters: parameters, encoding: JSONEncoding.default, headers: nil).responseString { (response) in
            switch response.result {
            case .success:
                if let value = response.result.value {
                    success(value)
                }
            case .failure(let error):
                failure(error)
            }
        }
    }
    // post请求
    func postRequest(url:String, parameters:[String : Any]? = nil,success:@escaping (_ response : String)->(), failure : @escaping (_ error : Error)->()){
        Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil).responseString { (response) in
            switch response.result {
            case .success:
                if let value = response.result.value {
                    success(value)
                }
            case .failure(let error):
                failure(error)
            }
        }
    }
    // 下载文件
    func downloadRequest(url:String,success:@escaping (_ response : Any)->(), failure : @escaping (_ error : Error)->()){
        Alamofire.download(url).responseJSON { (response) in
            switch response.result {
            case .success:
                if let value = response.result.value {
                    success(value)
                }
            case .failure(let error):
                print("download is fail")
                failure(error)
            }
        }
    }
    // 下载文件 查看进度
    func downloadRequestAndProgress(url:String,success:@escaping (_ response : Any)->(), failure : @escaping (_ error : Error)->()){
        Alamofire.download(url).downloadProgress { (progress) in
            print("download progress = \(progress)")
        }.responseJSON { (response) in
            switch response.result {
            case .success:
                if let value = response.result.value {
                    success(value)
                }
            case .failure(let error):
                failure(error)
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,311评论 4 61
  • 买房找人借钱的六个方法 买房难,借钱更难,你可能已经找到了一个完美的房子,但是你还得借钱才能买到,这确实很让人头疼...
    胖乎乎的胖子阅读 4,629评论 0 0
  • 1、清晰的自我认识 首先你需要认清自己想成为什么样子的设计师,然后写出你要提升能力的范围,比如:产品分析能力、逻辑...
    rainbow_star阅读 2,849评论 0 0
  • 今天晚上像往常一样去操场跑步,跑着跑着,我就忍不住哭了起来,眼泪一直往下掉。 好久没哭了吧,无论因为电影还是因为真...
    秦小珂阅读 3,255评论 0 1
  • 犹记得小城镇寂寂的夜景 和那条默默不语的走廊 正因为我们同样的沉默,安静 所以它能包容青春自作主张编织的梦 让怯怯...
    流浪者的手杖阅读 1,280评论 0 0