AFNetwoking(一)GET请求

AFNetworking用的很多,这里只是简单的GET请求一下数据,并进行展示,具体的深入研究包括afn的封装调用后期会跟上。

为什么要用AFNetworking?

第一点,它有人更新和维护,而且目前使用者很多。

第二点,还是使用者很多,那么他的资料,文档,demo就多,很好找遇到问题好解决。(前人栽树后人乘凉)

开整!

1、下载AFNetworking的包。贴上传送门:AFNetworking下载地址

里面有各种版本的AFNetworking,我下载是2.5.0和3.0.0的。而该文章用的是2.5.0的。

下载好了将这个文件夹托进你的工程里面。(我是新建了一个工程)

2、按照网友的说法需要添加支持的框架:

在这里添加:

3、添加好了,编译一下,没问题。

4、哪里需要用就添加头文件:

5、开始GET网络请求:

先贴上咱们网络请求的网址:http://www.21cn.com/api/client/v2/getClientArticleList.do?userSerialNumber=85d3bbb95d03920e3c53d3801781c806&accessToken=&pageSize=1&hasImg=0&articleType=0&listIds=711r,846r,1235r

在这里需要注意的是,这个网址不是https的,在iOS9下边请求的话,会报错:


所以需要在info.plist里面修改一下:

点击最上边的一个的+,添加一个NSAppTransportSecurity,这里注意:这是一个单词,不要自作聪明的在大写字母的地方加空格,我就是加了空格了,总是不对,坑啊!

然后给这个NSAppTransportSecurity选择字典类型

再在NSAppTransportSecurity这个里面添加一个BOOL型的NSAllowsArbitraryLoads(同样不要加空格)

一定要确保NSAllowsArbitraryLoads是在NSAppTransportSecurity这个里面,而且类型一定要对。

以这个网址为例子,咱们进行get的网络请求。

先给个存放请求的方法:就在这个get里面写get 请求

然后开始在这个方法里面写get:(为了你们自己敲一遍,我就不贴代码了)

来看请求回来打印的结果:

这tm什么玩意。。。(应该是NSData类型的数据)。。。

算是成功了一步了,至少我们请求回来东西了。

然后解析(用的苹果自己的JSON解析):

请看3333的打印结果:

这又什么玩意。。。(应该是什么编码,查了没记住)不要紧,如果你有鬼脸的话,直接将网址放进去就能看见结果

大概齐自己心里有数了吧,那继续。。。

建立model和cell,并引入头文件


model.h   (我还是很好的,这个你们不用一个个的拷贝了哈哈)

@property(nonatomic,assign)intarticleId;

@property(nonatomic,assign)intarticleType;

@property(nonatomic,strong)NSString*articleUrl;

@property(nonatomic,assign)intcolumnId;

@property(nonatomic,assign)intdisplayType;

@property(nonatomic,copy)NSString*firstPicUrl;

@property(nonatomic,assign)intisHot;

@property(nonatomic,assign)intisRecommend;

@property(nonatomic,assign)intisSpecial;

@property(nonatomic,assign)intoriginalHeight;

@property(nonatomic,assign)intoriginalWidth;

@property(nonatomic,copy)NSString*publishTime;

@property(nonatomic,assign)intregionId;

@property(nonatomic,assign)intreviewNum;

@property(nonatomic,assign)intshowBigPic;

@property(nonatomic,assign)intsourceId;

@property(nonatomic,copy)NSString*sourceName;

@property(nonatomic,copy)NSString*summary;

@property(nonatomic,copy)NSString*tags;

@property(nonatomic,copy)NSString*thumbImgUrl;

@property(nonatomic,copy)NSMutableArray*thumbImgUrlList;

@property(nonatomic,copy)NSString*title;

@property(nonatomic,copy)NSString*topTime;

@property(nonatomic,assign)intweight;

model.m


一定要加这句话,不然会崩溃。

cell.h


cell.m


cell的话我就简单的写一下,具体你们自己可以优化


其实这里打断点会发现当你追加数据的时候,model里面根本没有数据,但是最后模拟器上边显示成功,,,我也不知道咋回事,查了半天,还是搞不懂,,,待议。。。(知道是什么原因了。。。made,xcode的原因,重启一下xcode就好了。。。我太阳!)


创建tableview以及代理的实现


最后的结果:

补充:GET请求传参

我们请求的接口不仅仅是一个死的接口,有的时候需要传入参数,那么如何用afn的GET请求传参呢,下边我们一步一步进行。

首先给出一个完整的网址,我们对其进行请求:http://www.21cn.com/api/client/v2/getClientArticleList.do?userSerialNumber=d9212df45e15ba6784417320a8e215f5&accessToken=&pageSize=10&hasImg=0&articleType=0&listIds=100076c

请求很正常,结果如下:

那么我们去掉几个参数试试:http://www.21cn.com/api/client/v2/getClientArticleList.do?userSerialNumber=d9212df45e15ba6784417320a8e215f5&accessToken=&hasImg=0

我们去掉了:pageSize、listIds、articleType这3个参数,去掉之后我们请求试一试,结果如下:



显然,没有这几个参数,请求结果是啥也没有的,那么我们开始拼参:


我们再试一次请求结果:



结果显示是正常的,说明我们拼参传参是正确的,那么我们为了方便在xcode右下角的控制台随时能够看到拼接好的接口,我们在afn里面GET的方法添加一个打印:


上边这个方法,command点击进去,添加打印方法,以后我们在点击页面的时候就可以看见打印的接口了。



再次声明,这里只是简单的进行了GET请求。大神们不喜勿喷。。。

主要还是AFNetworking的导入步骤,因为查了好多资料,都没具体的步骤,可能是我太小白了吧,给小小白们补充一下。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接http://www.cnblogs.com/kenshincui/p/4186022.html 音频在i...
    Hyman0819阅读 21,938评论 4 74
  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 9,149评论 2 7
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,335评论 30 472
  • 原本跟姐姐弟弟约好了今年父亲节回去陪父亲的,因我先生出差未能成行。然后,再次约在父亲节后的一个周末。恰逢家里的荔枝...
    祖娟阅读 4,610评论 5 3
  • 有一次跟朋友们聊天,说到一个话题“领袖是什么?”这个话题抛出来,在座的朋友都惊讶,因为在座的他们每个都是一家或者多...
    承也勋也阅读 5,367评论 0 0