使用RAC重构网络请求

作者: 乡村武装青年 | 来源:发表于2016-02-06 16:35 被阅读1498次

    过年放假回家,打算在家把之前项目中使用的网络请求用RAC的信号重构一遍。

    接触到rac以来一直没有系统的应用到实战中,搜到的一些资料也只是介绍这个框架的特性及其用法。过年在家中闲着无事,结合几位大牛的博客,和一些开源的项目终于找到一些灵感,做了网络请求的封装。初次尝试,有很多不足,这篇文章作为记录。

    使用到的库:

    AFNetworking

    RAC

    首先,创建基类网络请求:

    这里只定义了4中基本请求

    由于需要使用用到AFHTTPSessionManager 的意思私有方法,所以需要把接口引用出来。

    这部分只是为了调用这个接口

    接下来就是具体使用anf做网络请求之后用信号传递传递结果。rac的信号传递好比 一个水管中的水,这个比喻随着学习的深入,越来越能体会的到。

    在实际请求中,很多时候网络请求会失败,或者我们的服务器采用auth认证,登陆之后的token在过一段时间之后会过期,这时候会需要我们做重新登陆的换取token 的操作。

    token失效之后,重新获取token的操作。

    以上部分就是基础类的构建,接下来只需要根据业务不同,创建不同的子类继承基础类就行了。

    such as:

    demo地址:demo : https://github.com/lforme/RACRefreshTokenDemo

    用swift写的

    相关文章

      网友评论

      • 镜像:能不能写下多请求并发时刷新token的例子,刚开始学rac,有点想不明白,谢谢
        乡村武装青年:@镜像 我今天晚上写一个例子
      • 492e423db474:求demo
        492e423db474:@乡村武装青年 大神demo地址是什么~~~
        492e423db474:@乡村武装青年 谢谢大神~~:+1:
        乡村武装青年:@起个名真TMD难 等我回家把demo放出来
      • 镜像:求demo
      • b4067f4d3883:你好,刚看了你的这篇文章,想请教下:你在RACDisposable里面op cancel,是出于什么考虑?
        乡村武装青年:@yuanyi__ 当信号被销毁的时候, 取消网络的IO
      • 诸葛凌峰:关于token过期这块 不知道楼主在多个网络请求并发的时候是怎么处理的啊
        乡村武装青年:@诸葛凌峰 只能加锁了.
        诸葛凌峰:@乡村武装青年 嗯,我细看了你的代码这样单个网络请求没问题。但假如有3个请求在外面飞,这时候都会遇到过期的错误,落地时不就都要刷新一下token,如果多线程情况下,会不会出现问题?要对token加锁吗?
        乡村武装青年:@诸葛凌峰 给signal加一个category去对error catch,捕获到错误之后执行刷新的token的signal,然后忽略掉信号的value,在contact 之前的信号,这样无论那个信号出了需要刷新error的错误,他都能保证在刷新过token之后重放你之前的那个动作也就是执行之前的请求
      • dc0db66b3d58:跪求demo
        JasmineTeaS:@乡村武装青年 求demo
        乡村武装青年:@kynethy 我私信给你
      • 火星的蝈蝈:谢谢博主,最近在研究RAC,写的非常好。 :+1:
        乡村武装青年:@火星的蝈蝈 谢谢鼓励😄

      本文标题:使用RAC重构网络请求

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