AFNetworking 使用 核心代码
///////////////////////////以前用法/////////////////////////////////////////////////////////////
//使用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 使用 核心代码的更多相关文章
- Android发送短信核心代码
核心代码:(1)SmsManager manager = SmsManager.getDefault(); //获得默认的消息管理器(2)ArrayList<String> list = ...
- [html5+java]文件异步读取及上传核心代码
html5+java 文件异步读取及上传关键代码段 功能: 1.多文件文件拖拽上传,file input 多文件选择 2.html5 File Api 异步FormData,blob上传,图片显示 3 ...
- 【五子棋AI循序渐进】关于VCT,VCF的思考和核心代码
前面几篇发布了一些有关五子棋的基本算法,其中有一些BUG也有很多值得再次思考的问题,在框架和效果上基本达到了一个简单的AI的水平,当然,我也是初学并没有掌握太多的高级技术.对于这个程序现在还在优化当中 ...
- .NET核心代码保护策略-隐藏核心程序集
经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...
- 处理部分WordPress核心代码或功能,让你的网站更快
处理部分WordPress核心代码或功能,让你的网站更快 http://www.wpdaxue.com/speed-up-wordpress.html
- OC 冒泡排序 -- 核心代码
//冒泡 核心代码 for (int i = 0; i < array.count - 1; i++) { int a = [array[i] intValue]; for (int j = i ...
- .NET核心代码保护策略
.NET核心代码保护策略-隐藏核心程序集 经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德 ...
- js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
1.计算指定时间距今多久 var date1=new Date('2017/02/08 17:00'); //开始时间 var date2=new Date(); //当前时间 var date3=d ...
- 学习Redux之分析Redux核心代码分析
1. React,Flux简单介绍 学习React我们知道,React自带View和Controller库,因此,实现过程中不需要其他任何库,也可以独立开发应用.但是,随着应用程序规模的增大,其需要控 ...
随机推荐
- 安卓 eclipse项目创建
一. 创建项目工程 1. 点击 file -> new -> Android Application project -> 2. 创建工程项目名字 自己命名 (注: 不要出现 ...
- ubuntu配置android开发环境和编译源码遇到的一些问题
---------------------------------------------环境变量设置--------------------------------------------- 1.设 ...
- 【Xamarin开发IOS-IOS生命周期】
iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受 ...
- SQLite数据库安装与使用
SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp创建的公有领域项目. 不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独 ...
- docker_openwrt
http://wiki.openwrt.org/doc/howto/docker_openwrt_image https://www.baidu.com/s?wd=lxc%20docker&r ...
- 《Learn python the hard way》Exercise 48: Advanced User Input
这几天有点时间,想学点Python基础,今天看到了<learn python the hard way>的 Ex48,这篇文章主要记录一些工具的安装,以及scan 函数的实现. 首先与Ex ...
- day52
今天依旧 阅读2篇的整理 数学试卷一套 综合练习计算 政治视频一个 范帅长难句一个 翻译两句 作文大小各一个 linux基础 今天折腾最久的应该是linux了 自己重新手动安装了一下 遇到的不少问题在 ...
- pyqt例子下拉列表
#!/usr/bin/env python # -*- coding: utf-8 -*- from PyQt4.QtCore import Qt from PyQt4.QtGui import QC ...
- 自己意淫的一个简陋的Python网站扫描器
使用的模块 threading.optparse.urllib2 本地需要放字典,名字需大写. 上代码 def request(url,pathName): try: import urllib2 p ...
- 查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词,存储过程函数,约束条件)
0.表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user ...