本文共 2041 字,大约阅读时间需要 6 分钟。
在ASIHTTPRequest框架中与HTTP请求相关的类有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子类,ASIFormDataRequest可以发送类似与HTML表单数据,也可以上传数据,默认采用POST请求方法。也可以其它的HTTP请求方法。它们都可以进行异步或同步请求。下面我们从最简单的GET同步请求介绍。
1、实现GET同步请求
实现GET同步请求使用最基本请求类ASIHTTPRequest就可以了。我们还是使用MyNotes应用为例,只考虑查询功能实现,修改主视图控制器MasterViewController.m的startRequest方法如下:
- -(void)startRequest
-
- {
-
- NSString *strURL = [[NSString alloc] initWithFormat:
-
- @”http:
-
- @”<你的iosbook1.com用户邮箱>”,@”JSON”,@”query”];
-
- NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];
-
- ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
-
- [request startSynchronous];
-
- NSLog(@”请求完成…”);
-
- NSError *error = [request error];
-
- if (!error) {
-
-
-
- NSData *data = [request responseData];
-
- NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data
-
- options:NSJSONReadingAllowFragments error:nil];
-
- [self reloadView:resDict];
-
- }
-
- }
使用ASIHTTPRequest类,需要引入头文件ASIHTTPRequest.h。
2、实现POST同步请求
发送POST方法的请求,无论同步还是异步请求都是使用ASIFormDataRequest类,只不过它们稍微有些不同。本节我们只介绍同步请求下使用ASIFormDataRequest类来发送POST方法。修改主视图控制器MasterViewController.m的startRequest方法如下:
- -(void)startRequest
-
- {
-
- NSString *strURL = @”http:
-
- NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];
-
-
-
- ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
-
- [request setPostValue:@ "<你的iosbook1.com用户邮箱>" forKey:@"email"]; ③
-
- [request setPostValue:@"JSON" forKey:@"type"];
-
- [request setPostValue:@"query" forKey:@"action"];
-
- [request startSynchronous];
-
- NSLog(@”请求完成…”);
-
- NSError *error = [request error];
-
- if (!error) {
-
-
-
- NSData *data = [request responseData];
-
- NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data
-
- options:NSJSONReadingAllowFragments error:nil];
-
- [self reloadView:resDict];
-
- }
-
- }
使用ASIFormDataRequest需要引入头文件ASIFormDataRequest.h。
如果我们想发送除了GET和POST以外的其它请求方法,可以使用[request setRequestMethod:@"PUT"]语句设置,其中PUT是请求方法。
转载地址:http://xuuwl.baihongyu.com/