AFN 常用方式

iOS基础:【ASI、AFN的区别】1、底层实现2、对服务器返回的数据处理3、监听请求的过程4、在文件下载和文件上传的使用难易度 1、底层实现1> AFN的底层基于OC的NSURLConnection和NSURLSession 2> ASI的底层基于纯C语言的CFNetwork框架 3> ASI的运行性能 高于 AFN2、对服务器返回的数据处理1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string 2> AFN提供了多种对服务器数据处理的方式 * JSON处理 * XML处理 * 其他处理3 阅读详情
 AFN 是最常用的网络框架, AFN 内部封装了 NSURLConnection 和 NSURLSession
    
    其中:
    
        AFHTTPRequestOperationManager 是对 NSURLConnection 的封装;
    
        AFHTTPSessionManager 是对 NSURLSession 的封装.

    AFN 的使用非常简单:
    
        总共分为两步: 1. 创建网络请求管理者; 2. 封装请求参数; 3.发送请求.
    
        // 1. 创建网络请求管理者
        AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
        // 2. 封装请求参数
        NSMutableDictionary *params = [NSMutableDictionary dictionary];
        params[@"username"] = @"zhangsan";
        params[@"password"] = @"zhang";
    
        // 3. 发送网络请求 ,AFN 中最常用的两个请求就是 GET 请求 和 POST 请求
        {
            // GET请求
            [mgr GET:url parameters:params
             success:^(AFHTTPRequestOperation *operation, id responseObject) {
                 // 请求成功的时候调用这个block
                 NSLog(@"请求成功---%@", responseObject);
             } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                 // 请求失败的时候调用调用这个block
                 NSLog(@"请求失败");
             }];
            
            // POST请求
            [mgr POST:url parameters:params
              success:^(AFHTTPRequestOperation *operation, id responseObject) {
                  // 请求成功的时候调用这个block
                  NSLog(@"请求成功---%@", responseObject);
              } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                  // 请求失败的时候调用调用这个block
                  NSLog(@"请求失败");
              }];
        }
}
/*-------------------------------------  AFN 数据解析  ----------------------------------------*/
重点: 针对不同的网络请求,设置不同的数据解析器
{
    <1> AFN 可以自动对服务器返回的数据进行解析,默认将服务器返回的数据当做 JSON 数据解析.
    
        必须按照服务器返回的数据格式,选择不同的解析器.不然,就会报错,得不到想要的数据.
    {
        // 创建网络请求管理者
        AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
        
        // 1. 默认情况下,网络请求的管理者的解析器如下:
        // 由于返回的是 JSON 数据,所以从服务器返回的数据:responseObject 的类型是 NSDictionary 或者 NSArray
        mgr.responseSerializer = [AFJSONResponseSerializer serializer];

        
        // 2. 如果服务器返回的是 XML 数据,那么必须设置网络请求管理者的解析器类型如下:
        // 这时,服务器返回的数据 responseObject 的数据类型是 NSXMLParser
        mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
        
        // 3. 如果服务器返回的是 data(比如:文件数据),这时需要告诉 AFN 不要去解析服务器返回的数据,保持原来的 data 数据就可以了.
        mgr.responseSerializer = [AFHTTPResponseSerializer serializer];

    }
    
    <2> 需要特别注意的是,服务器返回的数据一定要跟 responseSerializer 相对应.对应关系如下:
    {
        1> 服务器返回的是JSON数据
        * AFJSONResponseSerializer
        * AFHTTPResponseSerializer
        
        2> 服务器返回的是XML数据
        * AFXMLParserResponseSerializer
        * AFHTTPResponseSerializer
        
        3> 服务器返回的是其他数据
        * AFHTTPResponseSerializer
    }
}

AFN Demo(GET,POST,上传,下载,断点续传,网络检测).zip 立即下载

相关推荐

一款优秀的iOS网络封装框架(基于AFN封装)

一个优秀的网络封装框架,基于AFN封装,支持github,下载倒入项目即可使用

使用AFN 发出请求并传递json字符串参数遇到的一点问题

一. 问题描述:在使用AFN的GET请求, 在传递参数的时候,由于参数是字典类型的,并且AFN的GET方法的params参数是一个字典,如果参数嵌套着字典时, 当你 传参时会发现返回的是空的JSON数据, 并且报参数为空的错误(Xcode并不报错, 返回的数据中报错), 很明显是语法问题。 二. 解决思路:由于是语法错误,所以问了后台,发现后台需要的不是json数据,而是字符串格式的...

dnexhep03070的博客 338

BLDC方波控制双闭环Simulink仿真模型

无刷直流电机方波控制双闭环Simulink仿真模型搭建详细教程,包括速度PI环、电流PI环、换向逻辑和受控电压源,仿真结果良好。

m0_57458432的博客 6869

iOS----轻松掌握AFN网络顶级框架

AFN 一、什么是AFN 全称是AFNetworking,是对NSURLConnection的一层封装 虽然运行效率没有ASI高,但是使用比ASI简单 在iOS开发中,使用比较广泛 AFN的github地址 https://github.com/pokeb/AFNetworking/AFNetworking 二、AFN结构 NSURLConnection AFURLConnection...

weixin_30735391的博客 193

nRF24L01模块性能调优笔记:基于STC8H的SPI通信,如何突破700包/秒的传输瓶颈?

本文详细介绍了如何通过SPI通信优化、nRF24L01寄存器配置和STC8H系统级调优,突破700包/秒的传输瓶颈。从硬件设计到软件实现,提供了一套完整的性能调优方案,特别适合需要高性能无线通信的嵌入式开发者。

weixin_42525211的博客 180

双重机器学习 stata教程 手把手教学

双重机器学习(DDML)的stata教程

weixin_59030591的博客 1万+

IOS----轻松掌握AFN网络顶级框架

原文http://www.cnblogs.com/ShaoYinling/p/4731436.html?utm_source=tuicool&utm_medium=referral IOS----轻松掌握AFN网络顶级框架AFN一、什么是AFN全称是AFNetworking,是对NSURLConnection的一层封装虽然运行效率没有ASI高,但是使用比ASI简单在iOS开发中,使用比较广泛

xiaota00的博客 363

flowable表中文注释-表结构-主要表结构字段注释-sql脚本

flowable表结构中文注释,主要表结构字段注释,sql执行脚本,包含MySQL版和Oracle版sql脚本。

bushinakeshu的博客 1068

ios-OC封装AFN中的GET和POST方法

我们其实在写大型程序的时候最好不要直接让大型的框架直接进入项目中,因为这样耦合性会很强,你的程序就离不开AFN了,这样的情况肯定不是我们希望的,比如说AFN如果有重大的更新,我们如果用的是直接引入框架的方法,那我们需要改的东西有很多,如果我们通过封装一个工具类,来进行网络请求,这样的话,耦合性降低,实现的效果也是一样的。我们怎么进行封装,我们其实可以先去看AFN中内部的源代码是怎么实现的,AFN内...

rv0p111 946

C# 固高板卡(总线型) 操作类

主要功能有:初始化,轴使能,正负方向手动移动,回0,点到点移动,等待移动完成,输入IO数据读取,输出IO控制,清除报警等功能。

StevenChen的博客 571

Python爬虫博客:如何抓取时事新闻信息 —— 从各大新闻网站获取实时新闻数据

发送请求:向目标新闻网站发送 HTTP 请求,获取网页内容。解析网页:使用解析库(如)从网页中提取新闻标题、摘要、内容、发布时间等。绕过反爬虫机制:使用代理、设置请求头、模拟浏览器行为等策略绕过反爬虫技术。数据存储与清洗:将抓取的数据保存到本地文件或数据库中,并进行清洗,确保数据的可用性。在抓取过程中,我们还会面对很多实际问题,比如反爬虫技术、分页抓取、动态加载的内容等。接下来,我们将逐步介绍如何使用不同技术抓取静态和动态网页,并对抓取的内容进行处理。Scrapy。

2201_76125261的博客 2131

AFN和ASI的底层实现和区别

本篇将从四个方面对iOS开发中经常使用到的AFNetworking框架进行讲解: 一、什么是 AFN 二、为什么要使用 AFN 三、AFN 怎么用 三、AFN和ASI的区别   一、什么是 AFN AFN 全称为 AFNetworking,是一个构建与在 NSURLConnection、NSOperation 以及其他熟悉的 Founation 技术之上的一个

iOSbird的博客 2994

[HQChart教程] 去掉“仅学习使用”文字提示的小技巧

最近用 HQChart 做图表时,发现左下角有“仅学习使用”的字样。这种水印虽然是默认的,但如果要展示给客户,可能会显得不够专业。还好,这个问题很好解决,只需要简单修改一下配置。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 598

导入第三方细节

最近导入第三方的东西比较多 FMDB:第三方连接sqlite数据库的用的,导入的框架:libsqlite3.0tbd(iOS9.2)版本不同,后缀不同,FMDB不支持ARC记得 选中项目 –>Build Phases –>选中第二项,寻找相关的文件在后面跟上:-fno-objc-arc字段Masnory:第三方的代码布局,支持ARC,导入就可用GDataXML:第三方的XML解析数据,根据节

丶哑灬的博客 578

SAP Gateway Foundation OData V4 服务管理深度解析,从 Service Repository 到 Service Group 的完整运行逻辑

本文解析了SAP S/4HANA中OData V4 API的技术架构,重点阐述Service Repository、Service与Service Group的三层管理体系。以SalesOrder和PurchaseOrder API为例,说明不同服务可能属于特定repository(如srvd_a2x)而非默认DEFAULT库。Service Group作为业务模型组合单元,支持跨服务引用和统一配置,其发布状态直接影响服务可用性。文中对比了后台管理事务/IWBEP/V4_ADMIN与网关端/IWFND/V4

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 82

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

AFN中的鉴权

1. AFN 概览 作为 iOS 上最知名且最广泛使用的网络库,AFN 到底做了什么? 主要流程: 发起请求; 请求序列化; 安全策略应用; 响应序列化; 返回请求; 使用: 继承 AFHTTPSessionManager,创建自定义的请求对象; 设置安全策略; 发送 post、get 请求; 回调中处理结果; 类结构和请求流程 本文主要研究 AFN 的鉴权流程; 2. 鉴权...

康小曹(简书) 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

afn原理 ios_iOS中AFN的基本使用

AFN常用类AFHTTPSessionManager//管理者发送请求AFNetworkReachabilityManager//网络监测get请求//创建请求AFHTTPSessionManger *manger = [AFHTTPSession manger];//修改block的线程manager.completionQueue = dispatch_get_global_queue;NSD...

weixin_39551103的博客 385

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

AFN小记

一、AFN和ASI的区别ASI的使用参照文顶顶的http://www.cnblogs.com/wendingding/p/3950027.html1.底层实现1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwork框架3> ASI的运行性能 高于 AFN2.对服务器返回的数据处理 1&gt...

dkaq53672的博客 263

AFN论文解读

亲和特征增强网络(AFN)同时实现高像素级精度、完整拓扑结构和对对比度变化的鲁棒性。AFN的核心是一个 SMAFS 模块和三个 UAFS 模块,利用亲和场编码语义关系,作为分割特征强化的几何约束。

m0_73760594的博客 898

AFN和ASI的区别

一、AFN和ASI的区别 ASI的使用参照文顶顶的 http://www.cnblogs.com/wendingding/p/3950027.html  1.底层实现 1> AFN的底层基于OC的NSURLConnection和NSURLSession 2> ASI的底层基于纯C语言的CFNetwork框架 3> ASI的运行性能 高于 AFN 2.对服务器返回的数据处理

lin_transform的博客 275

AFN的简单介绍及使用

1.AFN框架基本结构: 一、AFN框架的2个管理对象 1.AFHTTPRequestOperationManager(是对NSURLConnection的封装) 2.AFHTTPSessionManager (对NSURLSession的封装)   二、AFHTTPRequestOperationManager的具体使用

bowei1105的博客 1255

iOS开发之AFN的基本使用

本篇将从四个方面对iOS开发中经常使用到的AFNetworking框架进行讲解: 一、什么是 AFN 二、为什么要使用 AFN 三、AFN 怎么用 三、AFN和ASI的区别   一、什么是 AFN AFN 全称为 AFNetworking,是一个构建与在 NSURLConnection、NSOperation 以及其他熟悉的 Founation 技术之上的一个

ITMan_K的博客 1497

AFN小结(简单的封装)

AFN小结 1,AFN概念、原理 2,AFN的封装使用 3,AFN与其它框架对比 ————————————————————————————————— 1 , AFN的概念原理: AFN的基础是NSURL,AFN的直接操作对象AFHTTPClient是一个实现了NSCoding和NSCopying协议的NSObject子类。AFHTTPClient...

CCEN8569的博客 297

ASI与AFN的区别

1> AFN基于NSURL(NSURLSession&NSURLConnection),ASI基于底层的CFNetwork框架,因此ASI的性能优于AFN2> AFN采取block的方式处理请求,ASI最初采取delegate的方式处理请求,后面也增加了block的方式 3> AFN只封装了一些常用功能,满足基本需求,直接忽略了很多扩展功能,比如没有封装同步请求;ASI提供的功能较多,预留了各

Haikuotiankong11111的博客 583

AFN 的一些记录

状态码 status code : 200 说明,网络请求成功, 二进制数据,已经正确传到本地, 数据解析出问题AFN请求数据格式 请求的数据格式(一般都是 HTTP 二进制数据,RESTful设计风格要求 POST JSON) 请求的数据格式 AFHTTPRequestSerializer HTTP,二进制,默认

sun island的博客 809
上一篇: 压缩文件:
下一篇: HTTP状态码
hsf_study
博客等级 码龄11年 10粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值