ASIHTTPRequest 一款强大的HTTP包装开源项目
2012-05-25 09:28
302 查看
ASIHTTPRequest,是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的HTTP网络传输的封装。
特色功能如下:
1,下载的数据直接保存到内存或文件系统里
2,提供直接提交(HTTP POST)文件的API
3,可以直接访问与修改HTTP请求与响应HEADER
4,轻松获取上传与下载的进度信息
5,异步请求与队列,自动管理上传与下载队列管理机
6,认证与授权的支持
7,Cookie
8,请求与响应的GZIP
9,代理请求
下面来两个小例子:
当你需要添加更多的请求信息时,如,添加个请求Header:
添加Post请求时的健值:
设置HTTP的授权帐号:
一个异步请求:
在我们数据获取的过程中,如果数据源复杂,一个请求队列是必不可少的:
特色功能如下:
1,下载的数据直接保存到内存或文件系统里
2,提供直接提交(HTTP POST)文件的API
3,可以直接访问与修改HTTP请求与响应HEADER
4,轻松获取上传与下载的进度信息
5,异步请求与队列,自动管理上传与下载队列管理机
6,认证与授权的支持
7,Cookie
8,请求与响应的GZIP
9,代理请求
下面来两个小例子:
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]; }
相关文章推荐
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- 强大的HTTP包装开源项目ASIHTTPRequest介绍
- (转)ASIHTTPRequest 一款强大…
- iOS开源库的学习-ASIHTTPRequest使用介绍
- ASIHTTPRequest开源类项目导入问题及解决方
- 开源库ASIHTTPRequest使用介绍
- 开源项目之Android http请求及缓存框架(GalHttprequest)
- iphone开发学习,开源,ASIHTTPRequest的学习
- 开源项目之Android http请求及缓存框架(GalHttprequest)
- 谁说非ARC类库不能在ARC项目中使用? - ARC项目中用ASIHTTPRequest POST数据.
- 一款强大的国内开源项目管理软件-禅道ZENTAO
- 能在ARC下跑的ASIHTTPRequest框架(以及升了5.0,用了ARC后N多开源框架不能用的解决方案)