AFNetworking3.0是目前最新的版本,本来打算介绍一下2.6,但是想想2.6名不久矣,就决定不介绍了,有兴趣的小伙伴可以上网查一查。下面我就开始进入正题了。

目前使用人数最多的第三方网络库,没有之一。从开始的NSURLConnection到现在的NSURLSession,它都一直保持着与苹果的步调一致,而由它也衍生出大量的相关第三方网络功能库,不仅仅因为他的可靠,好用,一直保持着维护更新,也是为什么它这么受到广大程序员的青睐。

上传data

  1. //
  2. // ViewController.m
  3. // CX- AFNetworking3.0简介
  4. //
  5. // Created by ma c on 16/3/22.
  6. // Copyright © 2016年 xubaoaichiyu. All rights reserved.
  7. //
  8.  
  9. #import "ViewController.h"
  10. #import "AFNetworking.h"
  11. @interface ViewController ()
  12.  
  13. @end
  14.  
  15. @implementation ViewController
  16.  
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19.  
  20. [self upLoadData];
  21.  
  22. }
  23. //上传data
  24. -(void)upLoadData{
  25.  
  26. UIImage * image = [UIImage imageNamed:@"renminbi.jpg"];
  27.  
  28. NSData * data = UIImageJPEGRepresentation(image, );
  29.  
  30. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  31. /*
  32. POST 上传地址
  33. parameters 文本参数
  34. constructingBodyWithBlock 上传文件的block,有可能多次调用
  35. progress 上传进度
  36. success 上传成功
  37. failure 上传失败
  38. */
  39. [manager POST:@"http://localhost/post/upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
  40.  
  41. /*
  42.  
  43. formData 上传的数据
  44.  
  45. FileData 上传文件的data
  46.  
  47. name 上传文件的key
  48.  
  49. fileName 服务器上的名字
  50.  
  51. mimeType 上传资源的类型
  52.  
  53. */
  54.  
  55. [formData appendPartWithFileData:data name:@"userfile00" fileName:@"xubaoaichiyu" mimeType:@"image/jpg"];
  56.  
  57. } progress:^(NSProgress * _Nonnull uploadProgress) {
  58.  
  59. NSLog(@"%@",uploadProgress);
  60.  
  61. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  62.  
  63. NSLog(@"成功->%@",responseObject);
  64.  
  65. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  66.  
  67. NSLog(@"失败->%@",error);
  68.  
  69. }];
  70.  
  71. }
  72.  
  73. @end

上传文件

  1. //上传文件
  2. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  3.  
  4. /*
  5. POST 上传地址
  6. parameters 文本参数
  7. constructingBodyWithBlock 上传文件的block,有可能多次调用
  8. progress 上传进度
  9. success 上传成功
  10. failure 上传失败
  11. */
  12. [manager POST:@"http://localhost/post/upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData) {
  13.  
  14. /*
  15.  
  16. formData 上传的数据
  17.  
  18. FileData 上传文件的data
  19.  
  20. name 上传文件的key
  21.  
  22. fileName 服务器上的名字
  23.  
  24. mimeType 上传资源的类型
  25.  
  26. */
  27.  
  28. NSURL * url = [[NSBundle mainBundle] URLForResource:@"renminbi.jpg" withExtension:nil];
  29.  
  30. [formData appendPartWithFileURL:url name:@"userfile00" fileName:@"xubaoaichiyu" mimeType:@"image/jpg" error:nil];
  31.  
  32. } progress:^(NSProgress * _Nonnull uploadProgress) {
  33.  
  34. NSLog(@"%@",uploadProgress);
  35.  
  36. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  37.  
  38. NSLog(@"成功->%@",responseObject);
  39.  
  40. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  41.  
  42. NSLog(@"失败->%@",error);
  43.  
  44. }];

Get

  1. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  2.  
  3. [manager GET:@"http://localhost/post/upload.php" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
  4.  
  5. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  6.  
  7. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  8.  
  9. }];

Post

  1. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  2.  
  3. [manager POST:@"http://localhost/post/upload.php" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
  4.  
  5. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  6.  
  7. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  8.  
  9. }];

GetXML

  1. AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
  2.  
  3. manager.requestSerializer = [AFHTTPRequestSerializer serializer];
  4.  
  5. manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
  6.  
  7. [manager GET:@"http://localhost/post/upload.php" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
  8.  
  9. } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
  10.  
  11. } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
  12.  
  13. }];

IOS 网络浅析-(十一 三方 AFNetworking3.0简介)的更多相关文章

  1. IOS 网络浅析-(八 NSURLSession简介)

    就在不长也不短的时间前,苹果正式命令咱们要向NSURLSession看,因此我们不得不认认真真的听从老大的教导,努力认知NSURLSession.其实呢,三方早已为我们解决了问题,但是呢,我们还是有必 ...

  2. IOS 网络浅析-(十三 SDWebImage 实用技巧)

    IOS 网络浅析-(十三 SDWebImage 实用技巧) 首先让我描述一下为了什么而产生的实用技巧.(在TableView.CollectionView中)当用户所处环境WiFi网速不够快(不能立即 ...

  3. IOS 网络浅析-(九 NSURLSession代理简介)

    从最开始什么都不懂的小白,到到现在略知一二的小孩.我觉得不仅仅是我,大家应该都会注意到代理几乎贯穿着IOS,那么问题来了,我接下来要说什么呢,那就是.标题的内容啦.上篇网络系列的文章我介绍了NSURL ...

  4. IOS 网络浅析-(六 网络图片获取之三方SDWebImage)

    网络图片获取是大多数app所能用到的,由于实际app开发中原生api很少用到,在这里就先不介绍了,以后有时间会给大家介绍.这篇文章会给大家介绍一个三方-SDWebImage.SDWebImage 是一 ...

  5. IOS 网络浅析-(十二 UIWebView简介)

    在这篇随笔里,我们只要知道UIWebView是什么就可以了. UIWebView 是苹果提供的用来展示网页的UI控件,它也是最占内存的控件. iOS8.0之后出现了webkit框架,WKWebView ...

  6. IOS 网络浅析-(十 NSURLSession下载简介)

    之前本来打算在写两个篇幅,但是在这片开写的时候觉得还是写一个比较好,有利于理解.NSURLSession下载是通过NSURLSession下载代理实现的,上一片也介绍了代理,之所以没有介绍下载是因为, ...

  7. IOS 网络浅析-(七 JSON解析之三方JSONKit)

    在这个网络横行的时代......... 有没有小说的感觉,哈哈

  8. IOS 网络浅析-(三 NSURLConnection代理)

    对于现在的iOS开发,用法简单,最古老最经典最直接的NSURLConnection的作用不是很大,但是作为一名ios开发者,我们应该拥有一颗热爱学习的心,下面通过代码的实现简单介绍一下NSURLCon ...

  9. IOS 网络浅析 (二 网络异步请求)

    学习网络,无论是C/S还是B/S首要的当然是向服务器发送请求,并得到响应,么有请求没有响应,那就不叫做网络了. 这边文章向大家介绍境界一下网路异步请求. *大家不要觉得我写的知识点太零散,我只是想给大 ...

随机推荐

  1. JS中给正则表达式加变量

    前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下.   一.字面量 其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如: var s = &quo ...

  2. HBase笔记:对HBase原理的简单理解

    早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...

  3. YY一下十年后的自己

    ps:其实这篇文章的评论比文章本身更有意思,欢迎关注. 每到年底总是我最焦虑的时候,年龄越大情况越明显. 可能越长大越是对 时光的流逝 更有感触,有感触之后就会胡思乱想.所以随手开始写下这篇文章. 人 ...

  4. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

  5. linux下如何添加一个用户并且让用户获得root权限

    1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing pass ...

  6. 前端进阶试题(css部分)

    一.css 40分 1. 什么是盒模型? 答: 2. Doctype的几种类型? 答:①.过渡的:②.严格的:③.框架的 更多详细介绍参考:资料 3. 如何布局左不动右边自适应的两列布局? 答:两种简 ...

  7. 计算照片的面积(WPF篇)

    昨天,老周突发其想地给大伙伴们说了一下UWP应用中计算照片面积的玩法,而且老周也表示会提供WPF版本的示例.所以,今天就给大伙们补上吧. WPF是集成在.net框架中,属于.net的一部分,千万不要跟 ...

  8. PostCSS深入学习: PostCSS和Sass、Stylus或LESS一起使用

    如果你喜欢使用PostCSS,但又不想抛弃你最喜欢的预处理器.不用担心,你不需要作出二选一的选择,你可以把PostCSS和预处理器(Sass.Stylus或LESS)结合起来使用. 有几个PostCS ...

  9. Compile FreeCAD on Windows

    Compile FreeCAD on Windows eryar@163.com 1.Introduction FreeCAD是一个参数化的三维造型软件,主要用于任意大小的实际模型的设计.参数化的建模 ...

  10. angular2系列教程(五)Structural directives、再谈组件生命周期

    今天,我们要讲的是structural directives和组件生命周期这两个知识点.structural directives顾名思义就是改变dom结构的指令.著名的内建结构指令有 ngIf, n ...