Swift版的网络请求封装

最近开始学swift,真的是欲罢不能啊。感觉比oc写起来顺手多了。

呐,今天呢,和大家分享一下swift版的网络请求库Alamofire,相当于oc里的AFNetworking,用起来不要太爽哦!!!

1.还是和往常一样,cocoapods导入第三方库Alamofire

2.建一个管理类,继承于NSObject

3.创建单例:

private let NetRequestShareInstance = NetRequest()

class NetRequest: NSObject {
    class var sharedInstance : NetRequest {
        return NetRequestShareInstance
    }
}

PS:关于swift单例的写法有好几种,网上大神早已贴出来了,我这只是其中的一种。

4.下面是请求的具体实现,在这里我把POST和GET分开来写了:

这是POST:

func postRequest(urlString: String, params : [String : Any], finished : @escaping (_ response : [String : AnyObject]?,_ error: NSError?)->()) {


        Alamofire.request(urlString, method: .post, parameters: params)
            .responseJSON { (response) in

                if response.result.isSuccess{

                    finished(response.result.value as? [String : AnyObject],nil)
                }else{

                    finished(nil,response.result.error as NSError?)

                }
        }
    }

这是GET:

func getRequest(urlString: String, params : [String : Any], finished : @escaping (_ response : [String : AnyObject]?,_ error: NSError?)->()) {


        Alamofire.request(urlString, method: .get, parameters: params)
            .responseJSON { (response) in

                if response.result.isSuccess{

                   finished(response.result.value as? [String : AnyObject],nil)
                }else{

                    finished(nil,response.result.error as NSError?)

                }
        }
    }

总结一下,咳咳,其实写下来感觉和OC没多大区别,唯一有区别的地方,就是oc中的block在这里用闭包的形式代替了,其他的倒没什么太大的区别!

另外,其实在swift中也可以用oc写的一些第三方库,无非就是建一个桥文件,在里面导入一下头文件而已,但是既然大神们辛辛苦苦的写好了swift版本,我觉得还是不要去绕道oc了,各位看官,您觉得呢?

欢迎大家随时指正!共同学习,共同进步!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值