- 浏览: 1338664 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (471)
- 原创文章 (4)
- Database (84)
- J2SE (63)
- Web (26)
- Javascript (30)
- Lucene (11)
- os (13)
- 算法 (8)
- Webservice (1)
- Open projects (18)
- Hibernate (18)
- Spring (15)
- Css (2)
- J2ee (2)
- 综合技术 (18)
- 安全管理 (13)
- PatternsInJava (27)
- NIO (5)
- Ibatis (2)
- 书籍收藏 (1)
- quartz (7)
- 并发编程 (15)
- oracle问题 (2)
- ios (60)
- coco2d-iphone (3)
- C++ (6)
- Zookeeper (2)
- golang (4)
- animation (2)
- android (1)
最新评论
-
dandingge123:
【引用】限制UITextField输入长度的方法 -
qja:
...
对List顺序,逆序,随机排列实例代码 -
安静听歌:
现在在搞这个,,,,,哎~头都大了,,,又freemarker ...
通用大型网站页面静态化解决方案(一) -
springdata-jpa:
java quartz定时任务demo教程源代码下载,地址:h ...
Quartz 配置参考 -
马清天:
[b][/b][list][*]引用[u][/u][/list ...
通用大型网站页面静态化解决方案(一)
强大的HTTP包装开源项目ASIHTTPRequest介绍
ASIHTTPRequest 是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装。它的特色功能如下:
1,下载的数据直接保存到内存或文件系统里
2,提供直接提交(HTTP POST)文件的API
3,可以直接访问与修改HTTP请求与响应HEADER
4,轻松获取上传与下载的进度信息
5,异步请求与队列,自动管理上传与下载队列管理机
6,认证与授权的支持
7,Cookie
8,请求与响应的GZIP
9,代理请求
下面来两个ASIHTTPRequest的小例子:
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request start];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
}
当你需要添加更多的请求信息时,如,添加个请求Header:
[request addRequestHeader:@"name" value:@"Jory lee"];
添加Post请求时的健值:
[request setPostValue:@"Ben" forKey:@"first_name"];
[request setPostValue:@"Copsey" forKey:@"last_name"];
[request setFile:@"/Users/ben/Desktop/ben.jpg" forKey:@"photo"];
设置HTTP的授权帐号:
[request setUsername:@"username"];
[request setPassword:@"password"];
一个异步请求:
- (IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
在我们数据获取的过程中,如果数据源复杂,一个请求队列是必不可少的:
- (IBAction)grabURLInTheBackground:(id)sender
{
if (![self queue]) {
[self setQueue:[[[NSOperationQueue alloc] init] autorelease]];
}
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[[self queue] addOperation:request]; //queue is an NSOperationQueue
}
- (void)requestDone:(ASIHTTPRequest *)request
{
NSString *response = [request responseString];
}
- (void)requestWentWrong:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
另外大家可以通过下面这个代码例子,看 ASIHTTP 比传统的 post 方法的方便之处
post用法
NSString *post = @"这里放要传递的参数";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"请求地址"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
//[request addValue:@"gzip" forHTTPHeaderField:@"Accepts-Encoding"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn)
{
receivedbData = [[NSMutableData data] retain];
}
else
{
// inform the user that the download could not be made
}
ASIHTTP 方法
NSURL *url = [NSURL URLWithString:@"请求地址"];
//ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
ASIFormDataRequest *request=[ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"值" forKey:@"参数1"];
[request setPostValue:@"值" forKey:@"参数2"];
[request start];
NSError *error = [request error];
if (!error) {
NSString *response = [request responseString];
NSLog(response);
}
相比之下,ASIHTTP 的确省了很多代码。更多信息请访问官方网站 http://allseeing-i.com/
出处:http://www.cocoachina.com/iphonedev/sdk/2010/1011/2159.html
发表评论
-
ios 声音合成
2013-08-18 13:20 1300http://stackoverflow.com/ques ... -
__bridge,__bridge_retained和__bridge_transfer的意思,区别与使用 20 三
2012-12-24 01:41 1727使用ARC能帮我们减轻不少内存管理方面的负担,尤其是对用 ... -
CAAnimation
2012-12-23 01:09 2359CAAnimation采用了CAMediaTi ... -
UIViewAnimation动画与Core Animation的CATransition类动画
2012-12-23 01:06 2764使用UIView类函数实现://U ... -
GCD实战2:资源竞争
2012-12-23 01:04 1606转自http://www.dreamingwish.co ... -
GCD实战一:使用串行队列实现简单的预加载
2012-12-22 17:10 2933转自 http://www.dreamingwish.c ... -
GCD介绍(四): 完结
2012-12-22 17:08 1431转自 http://www.dreamingwish.c ... -
GCD介绍(三): Dispatch Sources
2012-12-22 17:07 1670转自 http://www.dreamingwish.com/ ... -
GCD介绍(二): 多核心的性能
2012-12-22 17:05 1222转自http://www.dreamingwish.co ... -
基本概念和Dispatch Queue
2012-12-22 17:03 1407转自 http://www.dreamingwish.c ... -
Best Audio Format for iPhone Audio Programming
2012-12-19 16:26 2581I had never done audio p ... -
LAME 是一个开源的MP3解码编码工具
2012-12-19 13:09 8639MP3 Encoding * 编码MP3文件必须按如下 ... -
sqlite3中的数据类型
2012-12-10 21:37 1353(转)http://www.cnblogs.com/kfqco ... -
ios随机数,and()、random()、arc4random()
2012-11-15 11:06 4741原文:http://bj007.blog.51cto.c ... -
IPHONE GIF 播放的方式
2012-10-11 18:30 1468转 http://blog.csdn.net/zltia ... -
在新线程中使用NSTimer
2012-10-11 18:21 1599转自 http://blog.csdn.net/sjzs ... -
Creating an iPhone Daemon – Part 5
2012-09-02 15:29 1546Creating an iPhone Daemon – ... -
Creating an iPhone Daemon – Part 4
2012-09-02 15:28 1417Creating an iPhone Daemon – ... -
Creating an iPhone Daemon – Part 3
2012-09-02 15:25 1515This is part three of the bl ... -
Creating an iPhone Daemon – Part 2
2012-09-02 15:24 1270Here is part two of the blog ...
相关推荐
本主题将深入探讨如何利用ASIHTTPRequest库来调用WebService,并进行封装,以便在iPhone应用中更高效地使用。 首先,了解ASIHTTPRequest库。它是一个强大的Objective-C库,提供了简单易用的接口,用于发起HTTP请求...
ASI-HTTP-Request是通过CFNetwork API访问Web服务的一个开源封装类库包,使用Objective-C编写,非常易用,可以应用于iPhone和Mac OS X应用程序。 ASIHTTPRequest使用REST格式与Web服务进行通信,既支持基本的Http...
不过,需要注意的是,由于ASIHTTPRequest的开发已经停止,对于新项目,开发者可能会考虑使用更现代的网络库,如Alamofire或NSURLSession。但在维护旧项目或对ASIHTTPRequest有深度依赖的情况下,这个库依然非常实用...
ASIHTTPRequest 是一个面向 iOS 开发者的 HTTP 请求库,它为 Objective-C 编程语言提供了简单易用的接口,便于在 iPhone、iPad 或其他基于 iOS 的设备上进行网络数据的发送和接收。这个库由 Sam Soffes 开发,并在 ...
在描述中提到的 "iphone ASIHTTPRequest 开源工具包" 是指 ASIHTTPRequest 已经被封装成了一个适用于 iOS 开发的库,开发者可以方便地集成到自己的项目中,通过调用其提供的 API 来发起 HTTP 请求,如 GET、POST、...
ASIHttpRequest库是专门为iPhone开发设计的一个高效且功能丰富的HTTP网络访问库。它由Core Service开发而成,支持多种HTTP相关的功能,比如同步/异步数据下载、表单提交、文件上传等,并且能够很好地处理诸如Cookie...
本文将深入探讨ASIHttpRequest库的使用方法,以及如何利用它在iPhone应用中实现数据的下载。 首先,ASIHttpRequest库是由Sam Soffes开发的,它提供了异步和同步两种方式来发起HTTP请求,支持GET、POST、PUT、DELETE...
ASIHttpRequest库是一款用于iOS应用开发中的HTTP请求处理工具,它为开发者提供了简单易用的API来实现HTTP请求相关的功能。该库支持多种HTTP请求方式,包括但不限于同步与异步请求、表单提交、文件上传、处理Cookie等...
`ASIHTTPRequest`是一个网络请求库,支持异步请求;`EGORefreshTableHeaderView`提供下拉刷新功能;`AsyncImageView`实现了图片的异步加载,避免阻塞主线程;`setting`库则帮助开发者创建自定义设置界面。 4. 数据...
《iPhone 3开发基础教程源码》是一份针对初学者的iOS应用开发资源,主要基于Apple的SDK 3.0版本。这份教程源码旨在帮助开发者深入理解iPhone应用程序的构建过程,通过实际代码来学习iOS编程的核心概念。在这个压缩包...
这种方式适用于小规模数据的快速获取,但在实际开发中应避免在UI线程上使用同步请求,以防止用户界面冻结。 **示例代码:** ```objective-c -(IBAction)grabURL:(id)sender { NSURL *url = [NSURL URLWithString:@...
《Iphone团购信息客户端:KissXML、ASIHttpRequest与AQGridView的应用详解》 在iOS开发领域,构建一款高效且功能完善的iPhone团购信息客户端是一项技术挑战。本项目巧妙地结合了KissXML、ASIHttpRequest和...
- **Objective-C与跨平台开发:** Objective-C是iOS开发的主要编程语言之一,但在跨平台应用开发时,其与其他语言之间的互操作性较弱,这给开发者带来了一定难度。 - **代码覆盖率评估:** 代码覆盖率是衡量测试充分...
6. **iPhone与iPad应用开发的差异**:介绍了iPad专用API,并用nib和故事板技术分别实现iPhone和iPad的程序模板。 7. **应用程序的设置**:解释了设置和配置的区别,以及如何决定项目内容应该放在设置里还是配置里。...
- 下载管理:使用ASIHTTPRequest库(iOS)和Android-async-http库(Android)实现高效下载,包括异步请求、GZIP压缩、缓存、断点续传等功能。 5. 缓存机制: - 本地缓存:保存访问过的数据和下载内容,减少服务器...
* iOS5 的新特性:Storyboard、ARC 内存管理、iPhone5 屏幕适配 * iOS 系统的事件捕捉与传递机制:事件响应者链 * iOS 常用类库:AVFoundation、MediaPlayer 多媒体类库、CoreLocation、MapKit、Core Animation 等 *...
ASIHTTPRequest是iOS开发中一款经典的网络请求库,主要用于处理HTTP请求。这个"ASI学习DEMO"是一个示例项目,旨在帮助开发者了解并掌握如何在实际应用中使用ASIHTTPRequest库。以下将详细介绍ASIHTTPRequest的主要...
这本书旨在帮助读者掌握苹果公司的移动操作系统上的编程技能,无论是对iOS设备(如iPhone、iPad)的硬件特性,还是对iOS SDK和Xcode开发环境的熟悉,都能通过此书得到全面的理解。 书中首先从安装Xcode和iOS SDK...
20. **适配不同屏幕尺寸**:能为不同iPhone/iPad型号进行适配,确保应用在各设备上的良好显示。 21. **App Store上架流程**:熟悉苹果的审核规则,能顺利进行App的发布和更新。 22. **音视频多媒体开发**:对于...