美文网首页Swifty CodingSwift开发实战我的Swift开发
swift3.0-基于Alamofire4.0网络请求封装

swift3.0-基于Alamofire4.0网络请求封装

作者: 肆意二货 | 来源:发表于2017-03-03 09:11 被阅读4765次

    这是一个基于Alamofire封装的网络请求。SSBaseNetWork是一个单例,通过这个单例对象去调用网络请求的方法。

    一些必要的参数在这里直接设置。拼接在url后面的accessToken默认是拼接的,你可以更改默认设置,同时你可以通过单例对象去修改这个属性,如果你修改了,最好记得每次进行网络请求之前,设置好这个属性,或者你在每次更改之后,请求结束之后在置于默认的状态。

    这些方法获得完整的url,固定参数和传入参数整合。这里写了一个枚举RequestMethod,去判断请求是post还是get。

    数据请求,设置请求头。验证证书,这里是没有本地配置证书的,直接设置允许的。

    上传带图片参数的数据,图片要求是Data的数据类型。

    证书验证的具体方法。如果不设置这一步,https的请求无法请求到数据,会报错。

    具体使用,向上在封装一层,根据你实际的请求,在使用base类时,如果不需要在url之后拼接参数,就更改base里面的默认值,后面每次单例的调用就不需要在管这个属性。这里数据解析用的ObjectMapper.

    最后,如果对代码有更好的意见,或者有什么错误,请简信或者评论我,我会很感谢并且思考和更正问题。期待我们一起在码农的这条路上一起进步。

    代码链接: https://pan.baidu.com/s/1dF9qyNv 密码: ybmq

    相关文章

      网友评论

      • Untils:封装的本质:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体。
        陶小亮:@Untils 你这样合适吗?
        Untils:@肆意二货 逛逛偶尔看到,不好意思,下意识的说教
        肆意二货:这里只是公开调用。然后返回解析成model的数据。请求最终的目的不是获取数据,你传入参数,然后拿到你想要的数据。更好的封装你直接使用Moya就行,没必要用我这个简单的封装。
      • __weak:我何时才有你那么优秀
        __weak:@肆意二货 蒂花之秀
        肆意二货:这话我该怎么接好?
      • zcwfeng:SSCityModel 是啥????????????????????????????????????????????
        肆意二货:@SimonLu 自己定义的,你可以拿掉。
        6aae6f0aedb6:@肆意二货 这个Model在哪里定义哇 ?报错了
        肆意二货:@zcwfeng 是一个解析数据转成的model。
      • 闷啊:先膜拜下大佬
      • 丶随心灬:nw_proxy_resolver_create_parsed_array PAC evaluation error: NSURLErrorDomain: -1004
        responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))
        请求失败.什么意思啊
        JackMayx:这个问题解决了没? 我这边也遇到了3840
        肆意二货:@丶随心灬 网上说可能是服务器返回的数据不能解析。含有不能解析的字符。
        肆意二货:@丶随心灬 刚刚看到。3840,你可以百度下,具体的意思我不记得了。
      • wlw_花田半亩:为什么不上传到github.那样也方便很多.还有我想问一下现在swift3.0 还可以用Afnetworking进行网络请求吗
        Untils:代码的混编先了解这个概念
        肆意二货:没有习惯放到github。以后如果有新的代码,觉得可以分享,我会考虑放上去。
        肆意二货:这个我不能跟确定的回答你。因为这个请求是我自己学swift写的,我仍旧是用oc开发的。不过我个人觉得应该是可以使用af去进行网络请求的。
      • minjing_lin:相互学习,相互学习。
      • 指尖猿:程序媛.厉害了
        junfly:哈哈
        肆意二货:@指尖猿 木有哈。:relaxed:
      • KennyHito:有代码下载地址吗
        KennyHito:@肆意二货_林霞 谢谢了
        肆意二货:我增加了一个云盘下载的地址,你可以去下载了。
      • 8eb72928e848::+1:会swift的妹纸
        肆意二货:@TokyJiao :relaxed:
      • KuKuMan:妹纸年芳几何呀:smirk:
      • 有一天是蓝的:挺不错,到单个封装,功能有点少。把rxswift objectmapper 一起封装,会更好。
        Untils:@肆意二货 你这里也不必要每写了一个方法就进行一次数据解析
        肆意二货:rxSwift还没看,后面打算看看这个。我现在是用的objectmapper,这个是在现在这个base的基础上针对每一个请求,写了一个方法,在这个方法里面进行数据解析。

      本文标题:swift3.0-基于Alamofire4.0网络请求封装

      本文链接:https://www.haomeiwen.com/subject/omskgttx.html