(转)ASIHTTPRequest 一款强大…
来源:互联网 发布:mac 安装lnmp php7 编辑:程序博客网 时间:2024/06/06 12:36
ASIHTTPRequest一款强大的HTTP包装开源项目
ASIHTTPRequest,是一个直接在CFNetwork上做的开源项目,提供了一个比官方更方便更强大的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 = [ASIHTTPRequestrequestWithURL:url];
[request start];
NSError *error = [request error];
if (!error) {
}
当你需要添加更多的请求信息时,如,添加个请求Header:
[requestaddRequestHeader:@"name" value:@"Jory lee"];
添加Post请求时的健值:
[requestsetPostValue:@"Ben" forKey:@"first_name"];
[request setPostValue:@"Copsey" forKey:@"last_name"];
[request setFile:@"/Users/ben/Desktop/ben.jpg"forKey:@"photo"];
设置HTTP的授权帐号:
[requestsetUsername:@"username"];
[request setPassword:@"password"];
一个异步请求:
-(IBAction)grabURLInBackground:(id)sender
{
NSURL *url = [NSURLURLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL: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 = [NSURLURLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[requestsetDidFailSelector:@selector(requestWentWrong:)];
[[self queue] addOperation:request]; //queue is anNSOperationQueue
}
- (void)requestDone:(ASIHTTPRequest *)request
{
NSString *response = [request responseString];
}
- (void)requestWentWrong:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
0 0
- (转)ASIHTTPRequest 一款强大…
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 一款强大的HTTP包装开源项目
- ASIHTTPRequest 显示上…
- ASIHTTPRequest详解 非常强大
- AFNetworking VS ASIHTTPRequest
- ASIHTTPRequest 详解
- ASIHTTPRequest详解 【经典】
- ASIHTTPRequest 详解,
- SuperTextView:一款强大的TextView
- ASIHTTPRequest详解 【经典2】
- ASIHTTPRequest详解 【经典3】
- [转] 彼尔…
- apropos 除man以外又一强大的帮助…
- 第3条:尽可能使用 const
- git 基本命令介绍
- 快速Android开发系列网络篇之Volley
- 转: 关于数据保存持久化4这种方式
- (转)给大家推荐一个【webview和js…
- (转)ASIHTTPRequest 一款强大…
- (转)Core Data1
- (转)Core Data2
- 随机数
- imageVIew自带的动画效果(类似TOM…
- 我来了
- 停靠模式动画效果
- The type XXX cannot be resolved. It is indirectly referenced from required .class files错误
- Block动画