2016-03-30 11:29:07 1710瀏覽
在ASIHTTPRequest框架中與HTTP請(qǐng)求相關(guān)的類有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子類,ASIFormDataRequest可以發(fā)送類似與HTML表單數(shù)據(jù),也可以上傳數(shù)據(jù),默認(rèn)采用POST請(qǐng)求方法。也可以其它的HTTP請(qǐng)求方法。它們都可以進(jìn)行異步或同步請(qǐng)求。下面我們從最簡(jiǎn)單的iOS培訓(xùn)之ASIHTTPRequest框架中GET同步請(qǐng)求介紹吧。
1、實(shí)現(xiàn)GET同步請(qǐng)求
實(shí)現(xiàn)GET同步請(qǐng)求使用最基本請(qǐng)求類ASIHTTPRequest就可以了。我們還是使用MyNotes應(yīng)用為例,只考慮查詢功能實(shí)現(xiàn),修改主視圖控制器MasterViewController.m的startRequest方法如下:
-(void)startRequest
{
NSString *strURL = [[NSString alloc] initWithFormat:
@”http://iosbook3/mynotes/webservice.php?email=%@&type=%@&action=%@”,
@”<你的iosbook1.com用戶郵箱>”,@”JSON”,@”query”];
NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request startSynchronous];
NSLog(@”請(qǐng)求完成…”);
NSError *error = [request error];
if (!error) {
//NSString *response = [request responseString];
NSData *data = [request responseData];
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments error:nil];
[self reloadView:resDict];
}
}
使用ASIHTTPRequest類,需要引入頭文件ASIHTTPRequest.h。
2、實(shí)現(xiàn)POST同步請(qǐng)求
發(fā)送POST方法的請(qǐng)求,無論同步還是異步請(qǐng)求都是使用ASIFormDataRequest類,只不過它們稍微有些不同。本節(jié)我們只介紹同步請(qǐng)求下使用ASIFormDataRequest類來發(fā)送POST方法。修改主視圖控制器MasterViewController.m的startRequest方法如下:
-(void)startRequest
{
NSString *strURL = @”http://iosbook3/mynotes/webservice.php”;
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(@”請(qǐng)求完成…”);
NSError *error = [request error];
if (!error) {
//NSString *response = [request responseString];
NSData *data = [request responseData];
NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments error:nil];
[self reloadView:resDict];
}
}
使用ASIFormDataRequest需要引入頭文件ASIFormDataRequest.h。
如果我們想發(fā)送除了GET和POST以外的其它請(qǐng)求方法,可以使用[request setRequestMethod:@"PUT"]語句設(shè)置,其中PUT是請(qǐng)求方法。
查看更多關(guān)于“iOS培訓(xùn)資訊”的相關(guān)文章>>