ASIHTTPRequest框架使用(1)--发送同步请求
2014-05-08 23:38
465 查看
ASIHTTPRequest框架是优秀的第三方OC的HTTP框架,支持Mac OS X和iOS下得HTTP开发。
具有如下优点:
1、支持下载数据放在内存或本地文件
2、容易访问请求和应答HTTP Header
3、支持Cookie
4、支持GZip请求或应答(?)
5、支持缓存
6、支持同步或异步请求
7、支持HTTPs
但是,ASIHTTPRequest不支持ARC。
配置ASI框架:向项目中导入ASI框架之后,还要向工程中引入一些框架和类库:
CFNetwork.framework,SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.dylib
发送同步请求:
ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest。常用的是ASIHTTPRequest。
ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似于HTML的表单数据,也可以上传数据,默认采用Post请求方式。
ASIFormDataRequest和ASIHTTPRequest都可以进行同步和异步请求。
1、发送 “同步、Get” 请求
使用最基本请求类ASIHTTPRequest就可以了。
- (void)startRequest
{
NSString *strUrl = [[NSString alloc] initWithFormat:@"http://iosbook3.com/service/mynotes/webservice.php? email=%@&type=%@&action=%@",@"ios_yaoxinchao@163.com",@"JSON",@"query"];
NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
// 发送同步请求
[request startSynchronous];
NSLog(@"请求完成....");
NSError *error = [request error];
if (!error)
{
NSString *response = [request responseString];
NSData *data = [request responseData]; 【1】
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
。。。。
}
}
【1】:调用请求对象的responseData方法获取从服务器端应答回来的结果,它返回值为NSData类型。如果想返回字符串,使用responseString方法。
2、发送 “同步、Post” 请求
发送Post方法请求,无论是同步还是异步请求,都是使用ASIFormDataRequest类。
- (void)startRequest
{
NSString *strUrl = @"http://iosbook3.com/service/mynotes/webservice.php"; 【1】
NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
// 设置Post方式的请求参数信息
[request setPostValue:@"ios_yaoxinchao@163.com" forKey:@"email" ]; 【2】
[request setPostValue:@"JSON" forKey:@"type" ]; 【3】
[request setPostValue:@"query" forKey:@"action" ]; 【4】
// 发送 "同步、Post" 请求
[request startSynchronous];
NSLog(@"请求完成....");
NSError *error = [request error];
if (!error)
{
NSString *response = [request responseString];
NSData *data = [request responseData];
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
。。。。
}
}
【1】:可以看出,URL后没有跟请求参数,不再是Get请求了。
【2】、【3】、【4】:设置Post方法的参数。
具有如下优点:
1、支持下载数据放在内存或本地文件
2、容易访问请求和应答HTTP Header
3、支持Cookie
4、支持GZip请求或应答(?)
5、支持缓存
6、支持同步或异步请求
7、支持HTTPs
但是,ASIHTTPRequest不支持ARC。
配置ASI框架:向项目中导入ASI框架之后,还要向工程中引入一些框架和类库:
CFNetwork.framework,SystemConfiguration.framework, MobileCoreServices.framework,CoreGraphics.framework和libz.dylib
发送同步请求:
ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest。常用的是ASIHTTPRequest。
ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似于HTML的表单数据,也可以上传数据,默认采用Post请求方式。
ASIFormDataRequest和ASIHTTPRequest都可以进行同步和异步请求。
1、发送 “同步、Get” 请求
使用最基本请求类ASIHTTPRequest就可以了。
- (void)startRequest
{
NSString *strUrl = [[NSString alloc] initWithFormat:@"http://iosbook3.com/service/mynotes/webservice.php? email=%@&type=%@&action=%@",@"ios_yaoxinchao@163.com",@"JSON",@"query"];
NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
// 发送同步请求
[request startSynchronous];
NSLog(@"请求完成....");
NSError *error = [request error];
if (!error)
{
NSString *response = [request responseString];
NSData *data = [request responseData]; 【1】
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
。。。。
}
}
【1】:调用请求对象的responseData方法获取从服务器端应答回来的结果,它返回值为NSData类型。如果想返回字符串,使用responseString方法。
2、发送 “同步、Post” 请求
发送Post方法请求,无论是同步还是异步请求,都是使用ASIFormDataRequest类。
- (void)startRequest
{
NSString *strUrl = @"http://iosbook3.com/service/mynotes/webservice.php"; 【1】
NSURL *url = [NSURL URLWithString:[strUrl URLEncodedString]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
// 设置Post方式的请求参数信息
[request setPostValue:@"ios_yaoxinchao@163.com" forKey:@"email" ]; 【2】
[request setPostValue:@"JSON" forKey:@"type" ]; 【3】
[request setPostValue:@"query" forKey:@"action" ]; 【4】
// 发送 "同步、Post" 请求
[request startSynchronous];
NSLog(@"请求完成....");
NSError *error = [request error];
if (!error)
{
NSString *response = [request responseString];
NSData *data = [request responseData];
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
。。。。
}
}
【1】:可以看出,URL后没有跟请求参数,不再是Get请求了。
【2】、【3】、【4】:设置Post方法的参数。
相关文章推荐
- ASIHTTPRequest框架使用(2)--发送异步请求
- ASIHTTPRequest框架使用总结系列之阿堂教程2(同步请求)
- ASIHTTPRequest框架使用(3)--多线程并发请求
- ASIHTTPRequest框架同步请求
- iOS网络编程-ASIHTTPRequest框架同步请求
- 利用ASIHttpRequest框架进行网络数据请求(二)—— 利用post发送表单请求数据
- ASIHTTPRequest框架使用总结系列之阿堂教程3(异步请求)
- iOS 使用ASIHTTPRequest 发送Webservice请求
- iOS总结:ASIHttpRequest类库发送请求(同步请求和异步请求)
- iOS网络编程-ASIHTTPRequest框架同步请求
- ASIHTTPRequest的使用——同步或异步请求
- iOS网络编程-ASIHTTPRequest框架同步请求
- iOS网络编程-ASIHTTPRequest框架同步请求 推荐
- iOS网络编程-ASIHTTPRequest框架同步请求-备用
- 用ASIHttpRequest框架发送get请求
- iOS网络编程-ASIHTTPRequest框架同步请求
- ASIHTTPRequest系列(一):同步和异步请求
- iPhone发送接收Http请求——ASIHttpRequest 绝对好东西
- 归纳笔记013:第三方网络请求ASIHTTPRequest的使用
- ASIHTTPRequest系列(一):同步和异步请求