美文网首页
AFNetwoking(一)GET请求

AFNetwoking(一)GET请求

作者: 和珏猫 | 来源:发表于2016-04-08 17:19 被阅读934次

    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的导入步骤,因为查了好多资料,都没具体的步骤,可能是我太小白了吧,给小小白们补充一下。。。

    相关文章

      网友评论

          本文标题:AFNetwoking(一)GET请求

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