AFNetWorking请求过程和注意事项

AFNetWorking请求过程和注意事项,持续更新!!!!

我们一直在用AFNetWorking去请求数据,我们真正去看过他的请求过程和注意事项吗;说说 实际的请求3.0以后是基于NSURLSession的,请求序列化或得数据的任务默认是挂起的,再返回之前我们要开启,缓存策略是怎么配置的,原理是什么的,过程又是什么,比较不同设置请求的时间吗?等等,想清楚之后再去二次封装下httpTool看看效率吧,一起来看看吧!

1、网络请求最终返回的是NSURLSessionDataTask对象,对象里面包括:请求标识id;原始请求链接;当前请求的链接;请求回复的信息(状态,数据类型,时间,和服务器的一些属性)

SessionTask包含的对象

2、序列化请求默认是挂起的:需要在请求结束后调用 [dataTask resume]方法;

请求第一步

3、我们请求时传的url、参数、请求头等信息,是经过请求序列化整合到request对象的;

序列化生成request对象

4、真正的请求是由NSURLSession发起的,传的唯一参数就是序列化后的request对象;

开始真正请求

5、NSURLSession发起请求,是在多线程 同步任务执行的;

开始异步请求

6、请求的同时触发进程block实时回调

7、至此请求过程结束,返回数据

几个注意点:

1、设置超时时间:这个时间要根据自己公司服务器的相应时间来时,一般设置为10s左右,,一般一个接口的请求时间不超过0.2s。

2、设置缓存策略:(常用的是默认策略和离线模式):默认策略,如果NSCachedURLResponse对于请求不存在,则从源端获取,如果对于请求存在他会建立一个连接源端的链接,查看内容是否变化,没有变化则从缓存取,否则将从源端获取。

离线模式:是针对没有网络的情况下,也能够使用户获取原始缓存数据。

设置缓存策略要结合:

/*===============设置网络缓存==============*/

/**

内存缓存->4M设置内存缓存的最大容量(字节为单位,默认为512KB)退出后台失效

磁盘缓存->20M设置硬盘缓存的最大容量(字节为单位,默认为10M)删除应用失效

diskPath如果是nil,会缓存到cached的bundleId目录下

*/

NSURLCache*cathe = [[NSURLCachealloc]initWithMemoryCapacity:4*1024*1024diskCapacity:20*1024*1024diskPath:nil];

[NSURLCachesetSharedURLCache:cathe];

3、设置网络请求并发数:这个是设置底层请求请求并发数,但是进入底层之前还会有一个串行同步步骤

安全性设置:

主要是设置一些域名和证书问题,如果是https的话  在CA开发上买的 就直接配置下就好,根据配置可以拷贝证书到项目中,也可以不用拷贝证书(根据PinningMode);如果是自制的则必须拷贝证书,双向对比。

文件上传方式:

我们可以get上传,也可以post上传,可以直接上传,把资源转成data类型或者是InputStream流上传,,,一般上传之前我们要做适当的压缩、加密等操作。一般情况如果数据不多用data类型上传,数量多的话就选择用InputStream的方式上传。

几个问题:

     1、不设置缓存策略时,一个页面同时并发多个数据请求,在不断地进行刷新,页面反应会有不断的卡顿,,,当并发次数比较多时,响应时间明显加长,0.05~0.1的延时

     2、请求链接如果有汉语是一定要注意utf8Code转码,否则会出现闪退

     3、二次封装AFN时你要想到什么:基础链接,请求头,序列化,超时时间,缓存策略,安全性配置,缓存池配置,请求链接处理等等。

    4、怎么保证请求的顺序性,直接设置httpSessoinM.operationQueue.maxConcurrentOperationCount=1 就好的,只能并发一个。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,650评论 2 7
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,074评论 4 62
  • 这个男生,我从未见过。 以前也有聊的很好的男性朋友,但看到蓝颜这个话题时,我想写得却是这个从未谋面的男孩。 为了提...
    Hdada阅读 456评论 6 7
  • 我像是被风吹起的落叶 想要着陆 却始终飘摇不定 晃得心都乱了 晃得路都模糊了 晃得身体越来越沉 却发现连着陆的勇气...
    你说哈喽我说再见阅读 170评论 0 0