///////////////////////////以前用法/////////////////////////////////////////////////////////////

//使用AFHTTPRequestOperation 创建HTTP请求 --- GET请求

//1,url

NSString *URLTmp = @"http://api.budejie.com/api/api_open.php?a=list&appname=baisibudejie&asid=F20FB3C5-A3A6-4ACA-9B22-44FB308FCB23&c=data&client=iphone&device=ios%20%E8%AE%BE%E5%A4%87&from=ios&jbk=1&mac=02%3A00%3A00%3A00%3A00%3A00&market=&openudid=6bcaf1e795d8e4cf82ce78caa1fc33b9a7c671d5&page=0&per=20&type=10&udid=&ver=2.9.3";

URLTmp = [URLTmp stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  //转码成UTF-8  否则可能会出现错误

//2,请求对象

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: URLTmp]];

//3,创建HTTP请求

AFHTTPRequestOperation *afOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

//4,

afOperation.responseSerializer = [AFJSONResponseSerializer serializer];

//5,开始请求

[afOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {

//将字符串 编码后 转成 NSData

NSData *resData = [[NSData alloc] initWithData:[operation.responseString dataUsingEncoding:NSUTF8StringEncoding]];

//系统自带JSON解析

NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:resData options:NSJSONReadingMutableLeaves error:nil];

NSLog(@"%@",resultDic);

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Failure: %@", error);

}];

//6,

[[NSOperationQueue mainQueue] addOperation:afOperation];

//------批量处理

//    NSMutableArray *mutableOperations = [NSMutableArray array];

//    for (NSURL *fileURL in filesToUpload) {

//        NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

//            [formData appendPartWithFileURL:fileURL name:@"images[]" error:nil];

//        }];

//

//        AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

//

//        [mutableOperations addObject:operation];

//    }

//

//    NSArray *operations = [AFURLConnectionOperation batchOfRequestOperations:@[...] progressBlock:^(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations) {

//        NSLog(@"%lu of %lu complete", numberOfFinishedOperations, totalNumberOfOperations);

//    } completionBlock:^(NSArray *operations) {

//        NSLog(@"All operations in batch complete");

//    }];

//    [[NSOperationQueue mainQueue] addOperations:operations waitUntilFinished:NO];

//

///////////////////////////新用法/////////////////////////////////////////////////////////////

//提交GET ,

//1,创建AFHTTPRequestOperationManager HTTP请求操作管理对象

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

//2,发送GET请求(默认解析JSON,plist. )

[manager GET:URLTmp

parameters:nil

success:^(AFHTTPRequestOperation *operation, id responseObject) {

// NSLog(@"JSON: %@", responseObject);

}

failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Error: %@", error);

}];

// POST 单个请求

//1,创建AFHTTPRequestOperationManager HTTP请求操作管理对象

AFHTTPRequestOperationManager *manager1 = [AFHTTPRequestOperationManager manager];

//2,发送POST请求(默认解析JSON,plist. )

NSDictionary *parameters = @{ };//空参数

[manager1 GET:URLTmp

parameters:parameters  //参数

success:^(AFHTTPRequestOperation *operation, id responseObject) {

// NSLog(@" POST JSON: %@", responseObject);

}

failure:^(AFHTTPRequestOperation *operation, NSError *error) {

NSLog(@"Error: %@", error);

}];

//POST 多个请求

AFHTTPRequestOperationManager *manager2 = [AFHTTPRequestOperationManager manager];

NSDictionary *parameters2 = @{};

NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];

[manager2 POST:@"http://example.com/resources.json"

parameters:parameters2

constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

[formData appendPartWithFileURL:filePath name:@"image" error:nil];

}

success:^(AFHTTPRequestOperation *operation, id responseObject) {

//  NSLog(@"Success: %@", responseObject);

}

failure:^(AFHTTPRequestOperation *operation, NSError *error) {

//NSLog(@"Error: %@", error);

}];

//

////////////////////////////////////////////////////////////////////////////////////////

//创建一个下载文件的任务

//AFURLSessionManager创建并完善了一个NSURLSession的对象基于遵从NSURLSessionDelegate与NSURLSessionDataDelegate协议 NSURLSessionConfigration对象

//1,1 创建配置对象  (上传 下载 使用 ,  配置超时值,缓存策略,连接要求,和其他类型的信息,)

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];

//1.2 通过配置对象,创建AFURLSessionManager 管理对象

AFURLSessionManager *managerDown = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

//2,请求对象

NSURL *URL = [NSURL URLWithString:@"http://img4.mypsd.com.cn/20110707/Mypsd_59710_201107071333160001B.jpg"];

NSURLRequest *requestDown = [NSURLRequest requestWithURL:URL];

//3,创建下载任务

NSURLSessionDownloadTask *downloadTask = [managerDown downloadTaskWithRequest:requestDown

progress:nil

destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {

// 3,1 返回 一个下载到的路径

NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];

return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]]; //文件路径

}

completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {

//此处已经回到主线程 (处理UI)

// NSLog(@"File downloaded to: %@", filePath);

}];

//4, 开始

[downloadTask resume];

////////////////////////////////////////////////////////////////////////////////////////

//创建一个上传文件的任务

//AFURLSessionManager创建并完善了一个NSURLSession的对象基于遵从NSURLSessionDelegate与NSURLSessionDataDelegate协议 NSURLSessionConfigration对象

//1,1 创建配置对象  (上传 下载 使用 ,  配置超时值,缓存策略,连接要求,和其他类型的信息,)

NSURLSessionConfiguration *configuration1 = [NSURLSessionConfiguration defaultSessionConfiguration];

//1.2 通过配置对象,创建AFURLSessionManager 管理对象

AFURLSessionManager *managerUp = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration1];

//2,请求对象

NSURL *upURL = [NSURL URLWithString:@"http://example.com/upload"];

NSURLRequest *requestUp = [NSURLRequest requestWithURL:upURL];

//3,创建上传任务

NSURLSessionUploadTask *uploadTask = [managerUp uploadTaskWithRequest:requestUp

fromFile:[NSURL fileURLWithPath:@"file://path/to/image.png"]//上传文件的URL

progress:nil

completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {

if (error) {

//  NSLog(@"Error: %@", error);

} else {

// NSLog(@"Success: %@ %@", response, responseObject);

}

}];

//4,开始

[uploadTask resume];

AFNetworking 使用 核心代码的更多相关文章

  1. Android发送短信核心代码

    核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...

  2. [html5+java]文件异步读取及上传核心代码

    html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...

  3. 【五子棋AI循序渐进】关于VCT,VCF的思考和核心代码

    前面几篇发布了一些有关五子棋的基本算法,其中有一些BUG也有很多值得再次思考的问题,在框架和效果上基本达到了一个简单的AI的水平,当然,我也是初学并没有掌握太多的高级技术.对于这个程序现在还在优化当中 ...

  4. .NET核心代码保护策略-隐藏核心程序集

    经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...

  5. 处理部分WordPress核心代码或功能,让你的网站更快

    处理部分WordPress核心代码或功能,让你的网站更快 http://www.wpdaxue.com/speed-up-wordpress.html

  6. OC 冒泡排序 -- 核心代码

    //冒泡 核心代码 for (int i = 0; i < array.count - 1; i++) { int a = [array[i] intValue]; for (int j = i ...

  7. .NET核心代码保护策略

    .NET核心代码保护策略-隐藏核心程序集 经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德 ...

  8. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。

    1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...

  9. 学习Redux之分析Redux核心代码分析

    1. React,Flux简单介绍 学习React我们知道,React自带View和Controller库,因此,实现过程中不需要其他任何库,也可以独立开发应用.但是,随着应用程序规模的增大,其需要控 ...

随机推荐

  1. QT creator中使用opencv采集摄像头信息

    之前在QT creator上成功编译了opencv,由于课题需要,需要采集摄像头的信息.故搜集了网上的一些资料,依葫芦画瓢的照着做了一下,终于简单的成功采集了信息. 打开QTcreator,新建一个w ...

  2. udp之nat穿透的困惑

    nat穿透实现:[A]内网地址[内A]192.168.1.176:25789通过stun服务器查询映射到的外网地址为外网地址[外A]212.10.55.124:26559UDPsocketA绑定到[内 ...

  3. cf B. Levko and Permutation

    http://codeforces.com/contest/361/problem/B #include <cstdio> #include <cstring> #includ ...

  4. bat命令大全

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置.   语法 echo [{on│off}] [message ...

  5. 在CentOS 7上利用systemctl加入自己定义系统服务

    CentOS 7继承了RHEL 7的新的特性,比如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的执行效率 ...

  6. Spring redirect直接返回项目根文件夹

    return "redirect:/";

  7. GridView出现不完整--GridView删除滚动条

    GridView显示不完毕的原因是由于,他的外层也套用了一个滑动的控件,解决办法就是重写GridView,是控制GridView不能滚动,就是写一个类继承GridView  代码例如以下 public ...

  8. asp.net的3个经典范例(ASP.NET Starter Kit ,Duwamish,NET Pet Shop)学习资料

    asp.net的3个经典范例(ASP.NET Starter Kit ,Duwamish,NET Pet Shop)学习资料 NET Pet Shop .NET Pet Shop是一个电子商务的实例, ...

  9. 视图View

    视图UI层的HTML,JavaScript,Css等元素 asp.net mvc 框架支持惯例优先配置原则 视图路径:view/controller名/Action \view\home\index. ...

  10. 后台js

    Response.Write("<script>alert('该用户名不存在或密码错误或未参加教学活动,请重新输入!');history.back()</script> ...