探究AFNetworking的使用

简介AFNetworking

目前比较主流的网络请求有AFNetworking和MKNetworkKit,但是相对于MKNetworkKit来说,AFNetworking的扩展性更强,并且维护者比较多,AFNetworking是一个在IOS开发中使用非常多网络开源库,支持ARC,支持各种数据转换、下载、上传、缓存、续传,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档)NSURLConnection, NSOperation,以及其他熟悉的Foundation技术之上。它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松。这里研究的是AFNetworking2.0版本。

使用AFNetWorking进行网络请求:

使用准备阶段:

1.使用时将AFNetWorking导入项目,并引入Security.frameworkMobileCoreServices.frameworkSystemConfiguration.framework框架。

2. AFNetWorking使用了ARC ,在不使用ARC项目当中使用时,需要AFNetWorking的所有.m文件添加“-fobjc-arc”

发送网络请求:

1、构造的NSURL对象

2、根据URL对象构造NSURLRequest对象

3、构造不同的Operation接收不同的数据:

AFHTTPRequestOperation:AFURLConnectionOperation的子类,request使用的协议为HTTPHTTPS,它压缩了用于决定request是否成功的状态码和内容类型.

AFJSONRequestOperation:AFHTTPRequestOperation的子类,用于下载和处理jasonresponse数据.

AFXMLRequextOperation:AFHTTPRequestOperation的子类,用于下载和处理xmlresponse数据.

AFPropertyListRequestOperationAFHTTPRequestOperation的子类,用于下载和处理propertylist response数据.

AFImageRequestOperation:AFHTTPRequestOperation的子类,用于下载和处理图片.

4、当请求成功,则运行成功block块。可以使用获取的数据进行显示和存储。

5、当请求失败时就会运行失败block块,可以提醒错误信息

1、在AFNetWorking2.3.0的版本中,可以使用封装好的AFURLResponseSerialization这个封装好的类来获取自己想要的数据格式,比如json和xml。

       2、AFNetWorking只能支持异步加载。

 

使用AFNetWorking进行GET和POST请求:

GET是向服务器发索取数据的一种请求,也就相当于查询信息功能,不会修改类容,POST是有向服务器提交数据的一种请求,影响数据的内容;

 

发送GET请求:相关代码

 

    NSURL *url = [NSURL URLWithString:@"https://api.douban.com/v2/movie/us_box"];

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"documents/"];

    NSLog(@"path%@",path);

   

    AFHTTPClient *client =[[AFHTTPClient alloc] initWithBaseURL:url];

       

    [client getPath:path parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"成功");

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"失败");

    }];

   

发送POST请求:带有请求体,相关代码

    NSMutableDictionary  *params = [NSMutableDictionary dictionaryWithCapacity:2];

   

    [params setObject:@"x" forKey:@"y"];

   

    [params setObject:@"m" forKey:@"n"];

   

    NSURL *url = [NSURL URLWithString:@"https:xxx.com"];

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"documents/"];

   

    AFHTTPClient *client =[[AFHTTPClient alloc] initWithBaseURL:url];

   

    [client getPath:path parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSLog(@"成功");

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"失败");

    }];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值