iOS开发 AFNetworking 3.0使用遇到的问题补充
来源:互联网 发布:sql outer 编辑:程序博客网 时间:2024/06/06 18:04
- 1.很多初学者,在每处用到网络请求的地方会直接拿afn实例去请求,从而带来了后续难以维护代码的问题
[[AFHTTPSessionManager manager] POST:nil parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { } failure:^(NSURLSessionDataTask *task, NSError *error) { }];
思考:如果afn不更新了,后续出现重大bug适配问题,从而导致每处用到afn的地方都要修改,请问怎么办?
答案:呵呵,只能一个个修改了!有人会说,怎么可能不更新,很多人用着呢,怕什么。那假设其他第三方也同样出现类型的问题呢?所以是不是应该有方法或某种思想去解决呢?
解决方法:写个网络基类HRHttpBase
,提供两个方法:GET 与 POST,外面请求时,直接调用这两个方法,万一afn出了问题,只要修改这两个方法即可,从而减轻后续维护成本!这种做法同样适用于其他的第三方库, 这也是一种开发思想。
HRHttpBase.h
HRHttpBase.m
假设业务复杂的话,如登录,涉及到第三方登录之类的,有比较多的网络请求,可以专门抽一个网络请求类要处理:
HRhttpLogin.h
HRhttpLogin.m
- 2.用到CocoaPods,但更改了afn代码问题
这是缺少text/html解析格式,请求网络时,只要添加上就行了,很多人在网上找到设置的地方(如下图)。但他忘了,项目用CocoaPods
管理第三方库的,如果项目上线之前,同事更新了CocoaPods
那么之前写的代码就没了!
解决办法:通过AFHTTPSessionManager实例找到AFHTTPResponseSerializer 对象,然后看有没提供对应的方法或属性可设置该格式。
像类似的网络请求header
和user-agent
都应该在自己的代码里设置!
- 3.返回字符串而并非是json或xml格式,怎么解析?
开发中确实是存在奇葩的需求,还有可能返回一堆html
格式的String
,要截取Sting
里的某个key
。对于处理不了的格式,afn
有可能error
回调。
用AFHTTPSessionManager,我没找到未解析的字符(知道的朋友可以告诉我,谢谢)。最后还是用了AFHTTPRequestOperationManager
operation.responseString
即为未格式化的字符
ps:如果朋友们还有些奇怪的问题,可以回复我,一起解决!
原文链接:http://www.jianshu.com/p/37018da11815
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
- iOS开发 AFNetworking 3.0使用遇到的问题补充
- iOS开发 AFNetworking 3.0使用遇到的问题补充
- iOS开发 AFNetworking 3.0使用遇到的问题补充
- IOS 开发AFNetworking 3.0 遇到的问题
- [iOS]AFNetworking使用遇到的问题总结
- AFNetWorking 3.0 使用遇到的问题
- IOS AFNetworking 使用时遇到的问题及解决方法
- iOS使用AFNetWorking获取网络数据时遇到的问题??
- ios afnetworking https遇到的一些问题
- iOS开发AFNetworking的使用
- iOS开发AFNetworking的使用
- 使用AFNetworking (2.2.3)遇到的问题
- 使用AFNetworking (2.2.3)遇到的问题
- 使用AFNetworking (2.2.3)遇到的问题
- 使用AFNetworking上传图片遇到的问题
- iOS开发使用AFNetworking
- iOS开发-使用UIImagePickerController遇到的问题
- [iOS开发]使用GCD遇到的问题
- HTML head 头标签你真的了解么?
- maya 中球体自由旋转滚动
- IOS7 导航栏适配--translucent属性设置的问题
- Twitter 登录
- 学习java要从多方面入手!
- iOS开发 AFNetworking 3.0使用遇到的问题补充
- 190. Reverse Bits
- 原生js设置,获取,删除cookie demo
- Linux Samba 配置(Ubuntu)
- play silhoutte
- Kafka整合Flume
- org.apache.commons.httpclient.HttpClient的使用
- 自定义navigationBar [转]
- appscan使用方法