美文网首页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