基本使用

GET请求

1.创建会话管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];NSDictionary *paramDict = @{};
2.发送GET请求

/*
第一个参数:请求路径(不包含参数),NSString类型
第二个参数:字典(发送给服务器的数据~参数)
第三个参数:progress 进度回调
第四个参数:success 成功回调
task:请求任务
responseObject:响应体信息(JSON—>OC对象)(已经转换完了)
第五个参数:failure 失败回调
task:请求任务
error:错误信息
响应头:task.response(请求任务中有响应头)
*/

 [manager GET:@"" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {<#code#>}];

POST请求

1.创建会话管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];NSDictionary *paramDict = @{};
2.发送POST请求

/*
第一个参数:请求路径(不包含参数),NSString类型
第二个参数:字典(发送给服务器的数据~参数)
第三个参数:progress 进度回调
第四个参数:success 成功回调
task:请求任务
responseObject:响应体信息(JSON—>OC对象)(已经转换完了)
第五个参数:failure 失败回调
task:请求任务
error:错误信息
响应头:task.response(请求任务中有响应头)
*/

 [manager POST:@"" parameters:paramDict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {<#code#>}];

文件上传

1.创建会话管理者
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
2.发送post请求上传文件

/*
第一个参数:请求路径
第二个参数:字典(非文件参数)(可以不传)
第三个参数:constructingBodyWithBlock 处理要上传的文件数据
第四个参数:progress 进度回调
第五个参数:success 成功回调
task:请求任务
responseObject:响应体信息
第六个参数:failure 失败回调
task:请求任务
error:错误信息
*/

[manager POST:@"" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {//使用formData来拼接数据
/** 第一种方法 **/UIImage *image = [UIImage imageNamed:@""];NSData *imageData = UIImagePNGRepresentation(image);/*第一个参数:二进制数据 要上传的文件参数(图片为例)第二个参数:服务器规定的(看文档)第三个参数:该文件上传到服务器以什么名称保存第四个参数:mimeType(类型,可以上百度查找)*/[formData appendPartWithFileData:imageData name:@"file" fileName:@"xxxx.png" mimeType:@"image/png"];
/** 第二种方法 **//*第一个参数:传递一个URL(可以直接将文件路径转换成URL)第二个参数:服务器规定的(看文档)第三个参数:该文件上传到服务器以什么名称保存第四个参数:mimeType(类型,可以上百度查找)第五个参数:错误信息*/[formData appendPartWithFileURL:[NSURL fileURLWithPath:@""] name:@"file" fileName:@"xxxx.png" mimeType:@"image/png" error:nil];
/** 第三种方法 **//*第一个参数:传递一个URL(可以直接将文件路径转换成URL)第二个参数:服务器规定的(看文档)第三个参数:错误信息*/[formData appendPartWithFileURL:[NSURL fileURLWithPath:@""] name:@"file" error:nil];} progress:^(NSProgress * _Nonnull uploadProgress) {//进度NSLog(@"%f" , 1.0 * uploadProgress.completedUnitCount / uploadProgress.totalUnitCount);} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {<#code#>} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {<#code#>}];

小技巧

  • 当我们在开发的时候,我们可能会有很多个控制器,这些个控制器都需要发送网络请求,这样我们就需要都用到AFN,我们难到要每一个控制器都将框架拖进去?当我们不使用AFN框架了,那个时候会更加麻烦,我们可以这样做
我们封装一个工具类(networkTool),之后这个工具类依赖于AFN框架,之后使用工具类发送请求

AFN(向网络发送请求---文件上传)相关推荐

  1. iOS开发网络篇 一一 文件上传

    下面使用两种方式来实现iOS网络中的文件上传. 注意: 文件上传要发送POST请求 使用 NSURLConnection 来实现 文件上传 使用 NSURLSession 来实现 文件上传 这两种方式 ...

  2. apipost怎么模拟post请求文件上传

    在做接口测试的时候一般会有文件上传的post请求的接口需要进行测试,apipost可以简单的对文件上传功能进行接口测试. 首先新建一个接口 输入一个测试网址 在body里面输入需要实现文件上传的参数名 ...

  3. HttpURLConnection_Get和Post请求文件上传

    本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/9469543 关于HttpClient用法 1.HttpURLConn ...

  4. Java网络编程实现文件上传和下载案例详解

    客户端: 文件上传案例的客户端:读取本地文件,上传到服务器,读取服务器回写的数据 明确: 数据源:c:\1.jpg 目的地:服务器 实现步骤: 1.创建一个本地字节输入流FileInputStream ...

  5. 【java笔记】网络编程:文件上传案例

    原理:文件的复制 客户端读取本地的文件,把文件上传到服务器,服务器把上传的文件保存到服务器的硬盘上 步骤: 1.客户端使用本地的字节输入流,读取要上传的文件 2.客户端使用网路字节输出流,把读取的文件 ...

  6. SpringMVC的请求-文件上传-多文件上传的代码实现

    多文件上传,只需要将页面修改为多个文件上传项,将方法参数MultipartFile类型修改为MultipartFile[]即可 <form action="${pageContext. ...

  7. SpringMVC的请求-文件上传-单文件上传的代码实现2

    完成文件上传 @RequestMapping(value="/quick22") @ResponseBody public void save22(String username, ...

  8. SpringMVC的请求-文件上传-客户端表单实现

    文件上传客户端表单需要满足: 表单项type="file" 表单的提交方式是post 表单的enctype属性是多部分表单形式,及enctype="multipart/f ...

  9. post请求文件上传(个人记录)

    集合上传文件/图片路径 @RequestMapping(value = "/uploadImage",method = RequestMethod.POST,headers = & ...

最新文章

  1. android中getMeasuredHeigh()为0的问题
  2. 【python】【h5py】TypeError: Can‘t convert element to hsize_t
  3. python event多线程回调
  4. ML 02、监督学习
  5. python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块
  6. 等级保护2.0发布!过了4级的华为云如何帮助你?
  7. java jython_将对象从Java传递到Jython时保留Java类型
  8. 正弦函数_傅里叶为什么会想到把函数展开为正弦波
  9. 8.Mac PHPStorm 快捷键
  10. IEEE COMMUNICATIONS LETTERS 写作Latex模板
  11. 数据结构和算法基础(6)——常用十种算法
  12. 使用FFmpeg工具进行推流、拉流、截图、变速、转换,及常见问题处理
  13. Cocos2dx--Cocos2dx与Android平台的跨平台调用
  14. redis下载安装教程(详细步骤)
  15. 问卷与量表数据分析(SPSS+AMOS)学习笔记(二) :问卷设计的原则与注意事项
  16. 稳定kms服务器,kms服务器
  17. 小程序获取带有分享者信息的小程序码
  18. 云渲染和渲染农场的区别,什么是真正的云渲染
  19. QPushButton去掉选中状态的虚线框(焦点框)
  20. Cookie的安全性

热门文章

  1. DeepFlow: Deep Learning-Based Malware Detection by Mining Android Application
  2. 解决导出excel表格无法打开的问题
  3. 【调剂】上海科技大学信息学院2023年硕士招生调剂公告
  4. @天涯 njsuixin “英语最好不要报班,花钱多还学不到东西。”——这个满适合我的!
  5. 【ModelMapper简单使用】
  6. 一个广告净化大师拦截视频网站片头广告的实现
  7. php如何读取doc文档,php创建读取 word.doc文档
  8. python简单实现一个数字动态进度条
  9. 简易的监控mysql_使用开源工具mysqlreport监控Mysql数据库-简易使用方法
  10. eclipse没有Java EE透视图!