AFNetworking 使用指南

本文介绍了一个轻量级的iOS网络通信库AFNetworking的使用方法,包括如何安装、配置请求格式及响应格式、发送GET和POST请求等。同时,还探讨了文件上传和缓存策略等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       AFNetworking是一个轻量级的iOS网络通信类库 . 它的直接操作对象是AFHTTPClient,是一个实现了NSCoding和NSCopying协议的NSObject子类。AFHTTPClient是一个封装了一系列操作方法的“工具类”,处理请求的操作类是一系列单独的,基NSOperation封装的,AFURLConnectionOperation的子类.它支持HTTP的网络服务(GET 、POST、HEAD、PUT、DELETE等)。 目前使用比较多得一个下载库 目前一直在维护更新使用的是非常简单 不需要添加任何关联的库。带block形式 内部是任务队列进行下载就是对operation的一个封装下载。还对uikit 内部的类进行 类别形式添加方法(异步下载图片)。相比而言,ASI 以前使用比较多得一个下载开源库 现在已经不维护了,ASI 使用的时候要导入很多库比较麻烦。(ARC编写)

      Github地址:https://github.com/AFNetworking/AFNetworking

 1、AFN的使用

    1 将AFNetWorking文件夹导入项目

    2 在使用的地方 #import "AFNetworking.

    3 在使用ARC项目中,使用“不使用ARC”的类库时,对类库的.m文件添加“-fno-objc-arc”

 2、检测网络的连接状态


 3、使用常规的AFN网络访问

     1AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

     所有的网络请求,均有manager发起

     2)需要注意的是,默认提交请求的数据是二进制的,返回格式是JSON

     1> 如果提交数据是JSON,需要将请求格式设置为AFJSONRequestSerializer

     2> 如果返回格式不是JSON,也需要对应的转换 

    3)请求格式

     AFHTTPRequestSerializer            二进制格式

     AFJSONRequestSerializer            JSON

     AFPropertyListRequestSerializer    PList(是一种特殊的XML,解析起来相对容易)

     4)返回格式 (响应格式)

     AFHTTPResponseSerializer           二进制格式

     AFJSONResponseSerializer           JSON

     AFXMLParserResponseSerializer      XML,只能返回XMLParser,还需要自己通过代理方法解析

     AFXMLDocumentResponseSerializer (Mac OS X)

     AFPropertyListResponseSerializer   PList

     AFImageResponseSerializer          Image

     AFCompoundResponseSerializer       组合

     取消任务

     [manager.operationQueue cancelAllOperations];

 4、GET和POST请求

    GET

    // 1.获得请求管理者(管理请求, 帮助发请求)

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    // 声明服务器返回的数据是JSON

    //    mgr.responseSerializer = [AFJSONResponseSerializer serializer];

    

    // 2.封装请求参数

    NSMutableDictionary *params = [NSMutableDictionary dictionary];

    params[@"username"] = @"123";

    params[@"pwd"] = @"123";

    

    // 3.发送GET请求

    [mgr GET:SNS_URL parameters:params

     success:^(AFHTTPRequestOperation *operation, id responseObject) { //  responseObject : 在这种情况下是字典

         NSLog(@"请求成功---%@", responseObject);

     }

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

         NSLog(@"请求失败---%@", error);

     }];


   POST

    // 1.获得请求管理者(管理请求, 帮助发请求)

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    // 声明服务器返回的数据是JSON

    //    mgr.responseSerializer = [AFJSONResponseSerializer serializer];

    

    // 2.封装请求参数

    NSMutableDictionary *params = [NSMutableDictionary dictionary];

    params[@"username"] = @"123";

    params[@"pwd"] = @"123";

    

    // 3.发送GET请求

    [mgr POST:SNS_URL parameters:params

     success:^(AFHTTPRequestOperation *operation, id responseObject) { //  responseObject : 在这种情况下是字典

         NSLog(@"请求成功---%@", responseObject);

     }

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

         NSLog(@"请求失败---%@", error);

     }];


 5、文件上传


 6、缓存策略

     *****推荐几种常用的缓存策略*******






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值