随着ASI的停止更新,越来越多的developer选择使用AFNetworking作为网络请求的工具类,在使用的时候可能会遇到各
种问题,这篇博文我只会写一些AFN的使用中遇到的问题以及一些技巧性的东西,如果觉得有用的话请收藏哟~~,这篇博文问
会不停跟新,玩友们觉的有需要加入的东西可以留言,我会及时跟新博客,为遇到问题而苦无解决办法的小伙伴们提供一份资
源。。。
1)header configure
在project全局搜索agent,会追踪到两个包含文件AFURLRequestSerialization.h和AFURLRequestSerialization.m,
去.m文件中根据你的需求去更改userAgent(不同机型不同的配置,userAgent是一个NSString类型的obj),这个userAgent就
是你传的请求头信息。(在AFN2.0中给你默认配置了请求头,并且http request header 属性是只读的,要改请求头的要去改
AFN)header 配置参考链接 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
友情提示:更改之前请先保存一份或提交到版本控制器一份,如若拿自己公司的项目乱来,后果自负。
注释:大神可跳过,此处为科普~~
HTTP请求包括三部分:请求行(Request Line),头部(Headers)和数据体(Body)。 header 配置也就是请求头配
置,可以让服务器端接收到一些字段。简而言之,对我们app客户端来说你最好把你的机型信息(系统版本)、
测试环境还是正式环境(即:接口是正式接口还是测试接口)加在请求头里边,这样后台就可以统计你的请求遇
到问题的时候是什么机型,是debug的时候出现问题还是线上产品出的问题(如果是线上产品出问题,这样做能
及时发现,开紧急会议讨论应对方案,不然成为了项目事故就事儿大了~~)。具体机型信息、系统版本等这里
就不介绍了。
2)http 请求错误信息分析帮助地址
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
3)AFN支持的请求方法有9种之多,除了我们常用的post、get、put、delete之外,
你肯能在特殊情况下用其他的请求方法,请打开这个友情链接
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
根据你的需求去使用不同的方法吧,方法我不详说,w3介绍的很详细
4)AFN基本使用
初始化你的http request manager,然后通过manager去post或get就可以了
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes =
[NSSet setWithObjects:@"application/json", @"text/json", nil];
友情提示:manager支持的响应内容类型的配置可以参考一下链接
http://www.iana.org/assignments/media-types/media-types.xhtml