一 概述

  • 什么是AFN
  • AFN入门介绍
  • AFN使用示例

二 什么是AFN

  • 全称是AFNetworking,是对NSURLConnection、NSURLSession的一层封装
  • 虽然运行效率没有ASI高,但是使用比ASI简单
  • 在iOS开发中,使用比较广泛

三 AFN入门介绍

3.1 项目地址

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

3.2 添加AFN依赖

在项目位置打开终端,执行如下指令

pod init

打开Podfile文件,添加SSZipArchive依赖

pod 'AFNetworking', '~> 4.0'

添加依赖更新

pod update

3.3 AFN使用

在引用位置添加依赖头文件

#import "AFNetworking.h"

一般请求如下:

  • 执行Get请求返回JSON
  • 执行Get请求返回XML
  • 执行Get请求返回Data
  • 执行Post请求

执行AFN请求的一般过程

  • 创建AFHTTPSessionManager
  • 设置请求返回类型:AFXMLParserResponseSerializer或者AFJSONResponseSerializer(默认)
  • mgr GET/POST请求

四 AFN使用示例

4.1 执行Get请求返回JSON

代码

-(void)HttpManagerGetJSON
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFJSONResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}

返回结果(类型)

2022-03-19 13:15:22.451162+0800 AFN-Demo1[53993:870418] 成功--__NSSingleEntryDictionaryI

4.2 执行Get请求返回XML

代码

-(void)HttpManagerGetXML
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";params[@"type"]=@"XML";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFXMLParserResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}

返回结果

2022-03-19 13:16:57.090992+0800 AFN-Demo1[54087:872784] 成功--NSXMLParser

4.3 执行Get请求返回Data

代码

-(void)HttpManagerGetData
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";params[@"type"]=@"XML";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];mgr.responseSerializer=[AFHTTPResponseSerializer serializer];[mgr GET:url parameters:params headers:nil progress:^(NSProgress * _Nonnull downloadProgress) {NSLog(@"progress");} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"成功--%@",[responseObject class]);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}

返回结果

2022-03-19 13:17:55.420995+0800 AFN-Demo1[54149:874520] 成功--_NSInlineData

4.4 执行Post请求

代码

-(void)HttpManagerPost
{NSString *url=@"http://localhost:8080/MJServer/login";NSMutableDictionary *params=[NSMutableDictionary dictionary];params[@"username"]=@"123";params[@"pwd"]=@"123";AFHTTPSessionManager *mgr=[AFHTTPSessionManager manager];[mgr POST:url parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {NSLog(@"成功--%@",responseObject);} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {NSLog(@"失败");}];
}

返回结果

2022-03-19 13:19:02.932836+0800 AFN-Demo1[54222:876367] 成功--{success = 登录成功
}

IOS开发之——AFN-基本使用(01)相关推荐

  1. IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天

    IOS开发基础之网易新闻环境搭建异步请求json,AFN网络封装第1天 视频资料是2015年的,但是AFN是导入框架的关键文件,我尝试使用cocoapods安装最新的AFN,虽然成功了,但是版本太高, ...

  2. IOS开发高级之点餐系统的实现-01

    IOS开发高级之点餐系统的实现-01 // // ViewController.m // 01-点餐系统 // // Created by 鲁军 on 2021/2/11. //#import &qu ...

  3. iOS开发系列课程(01) --- iOS编程入门

    iOS概述 什么是iOS   iOS是苹果公司为它的移动设备(iPhone.iPad.iWatch等)开发的移动操作系统. iOS发展史 2007年苹果发布iPhone Runs OS X 2008年 ...

  4. IOS开发基础之使用AFNetworking框架实现文件上传get和post请求

    IOS开发基础之使用AFNetworking框架实现文件上传get和post请求 AFNetworking框架 请自行从github官网clone.命令为 git clone xxx.xxx是项目的地 ...

  5. iOS开发第三方大全

    UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableVie ...

  6. iOS开发-技术知识盘点总结(二)

    1> UINavgationController使用 导航控制器之间切换供用一块导航条! 导航条的内容由栈定控制器决定! 显示在我们眼前的永远是栈顶控制器! 左上角的返回按钮文字是特例由上一个控 ...

  7. iOS开发之资料收集

    github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github ...

  8. iOS:iOS开发非常全的三方库、插件、大牛博客等等

    iOS开发非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章 ...

  9. iOS开发系列--让你的应用“动”起来

    概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画 ...

最新文章

  1. 个人作业1——四则运算题目生成程序
  2. 过度封装的ZeroMQ
  3. 我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
  4. 配置中心_Nacos做配置中心
  5. 2020,这些前沿技术成全球关注热点
  6. MarkDown总结(适合初学者快速入门)
  7. opencv中cvSetCaptureProperty定位不准的原因及解决(转载)
  8. n平方的求和公式_极限求解--数列前n项和公式推导(补充知识)
  9. 普林斯顿微积分读本第一章--函数、反函数
  10. python调用access数据库_Python访问Access数据库
  11. Docker容器实现跨宿主机通信
  12. Opencv中,imag=cv2.cvtColor(imag,cv2.COLOR_BGR2GRAY) 报错:error:!_src.empty() in function ‘cv::cvtColor‘
  13. FPGA-10:设计个简单的cpu(真的简单!)
  14. JAVA集合之Map集合遍历
  15. python读取pdf文件并转换成txt文件
  16. 点击高德地图标注没法弹窗_巴彦淖尔果农注意啦!林草局喊你上高德地图标注位置哦...
  17. 北京葡萄藤2019年上半年简报
  18. python实现微博超话一键签到点赞评论
  19. matlab中sinx的平方,sinx的平方是奇函数还是偶函数
  20. 什么是REST?什么叫符合REST规范的API接口?

热门文章

  1. Re-ID 2019 Review
  2. android功耗测试方法,手机功耗测试指南
  3. 申明(声明)、定义及默认参数
  4. [Swift]图片加载 SDWebImage、AlamofireImage和Kingfisher
  5. 浪潮信息赋能昆明地铁实现云边协同管理
  6. 【安卓开发】安卓开发工具: android studio(AS)的安装,配置与汉化保姆级详细教程
  7. 数据盾揭秘系列(十二)|数据盾技术总监权威解读数据盾项目(下)
  8. hdu5597GTW likes function+欧拉函数
  9. python闯关训练营怎么样3.0_【新升级】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!...
  10. CPU温度实时预警并将信息发送到钉钉