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

接下来我们来看几个demo

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

GET

  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. }];

POST

  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. }];

GETXML

网络婚礼之AFNetWorking3.0的更多相关文章

  1. IOS 网络浅析-(十一 三方 AFNetworking3.0简介)

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

  2. AFNetworking3.0+MBProgressHUD二次封装,一句话搞定网络提示

    对AFNetworking3.0+MBProgressHUD的二次封装,使用更方便,适用性非常强: 一句话搞定网络提示: 再也不用担心网络库更新后,工程要修改很多地方了!网络库更新了只需要更新这个封装 ...

  3. 基于AFNetworking3.0网络封装

    概述 对于开发人员来说,学习网络层知识是必备的,任何一款App的开发,都需要到网络请求接口.很多朋友都还在使用原生的NSURLConnection一行一行地写,代码到处是,这样维护起来更困难了. 对于 ...

  4. iOS_SN_基于AFNetworking3.0网络封装

    转发文章,原地址:http://www.henishuo.com/base-on-afnetworking3-0-wrapper/?utm_source=tuicool&utm_medium= ...

  5. iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载

    官方建议AFN的使用方法   0.导入框架准备工作 •1. 将AFNetworking3.0+框架程序拖拽进项目   •2. 或使用Cocopod 导入AFNetworking3.0+   •3.   ...

  6. iOS开发--基于AFNetWorking3.0的图片缓存分析

    图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...

  7. AFNetworking3.0的基本使用方法

    前一段时间在做项目的时候发现AFNetworking3.0已经被大众所接受,所以以后肯定会有很多程序猿朋友必须了解和转移至3.0了,这是我这段时间使用和学习总结出来的一些常用的知识点,希望对大家有用. ...

  8. AFNetworking3.0为何弃用了NSURLConnection

    http://blog.csdn.net/qq_34101611/article/details/51698524 上篇博客说到AFNetworking3.0只提供了NSURLSession的支持.其 ...

  9. iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件上传

    官方建议AFN的使用方法 0.导入框架准备工作 •1. 将AFNetworking3.0+框架程序拖拽进项目   •2. 或使用Cocopod 导入AFNetworking3.0+   •3.  引入 ...

随机推荐

  1. 解决Fedora解压文件产生乱码的问题

    最近有发现在使用Linux的时候,之前也遇到过在ubuntu下,最后ubuntu貌似在原生下优化了这个问题,现在换到了fedora上的时候问题又出现了,解压出来的文件中文乱码. 为了在linux下可以 ...

  2. iOS学习笔记——基础控件(上)

    本篇简单罗列一下一些常用的UI控件以及它们特有的属性,事件等等.由于是笔记,相比起来不会太详细 UIView 所有UI控件都继承于这个UIView,它所拥有的属性必是所有控件都拥有,这些属性都是控件最 ...

  3. Entity Framework 6 执行Linq to Entities异常"p__linq__1 : String truncation: max=0, len=2, value='测试'"

    场景再现 我需要查询公司名称包含给定字符串的公司,于是我写了下面的测试小例子: var condition = "测试"; var query = from b in db.Com ...

  4. ajaxfileupload asp.net 的简单使用

    本人菜鸟,第一次写博客,不会排版,只是记录工作中常用的东西 ajaxfileupload.js源码: http://www.rczjp.cn/HTML/110420/20113620053635.ht ...

  5. .NET 中获取调用方法名

    在写记录日志功能时,需要记录日志调用方所在的模块名.命名空间名.类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下: 需要添加相应的命名空间: us ...

  6. Android使用SAX解析XML(3)

    主界面MainActivity.java: package com.hzhi.my_sax; import java.util.ArrayList; import android.os.Bundle; ...

  7. hibernate简单注释(一.1)

    **************************************************************************************************** ...

  8. DevExpress Ribbongallerybaritem选择性皮肤重组

    void InitSkinGallery() () { SkinHelper skinHelper = new SkinHelper(); RibbonControl masterRibbonCont ...

  9. 常见的http响应状态码

    http状态返回代码 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. http状态返回代码 代码   说明100   (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到 ...

  10. selenium webdriver读取excel进行数据驱动测试

    最近做自动化需要从文件读取数据做参数化,网上发现一个不错的解决方案. 准备:新建一个excel文件,文件名为测试类名,sheet名为测试方法名         excel第一行为标题,从第二行开始为测 ...