您好,登錄后才能下訂單哦!
在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://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(@”請求完成…”);
- 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、實現POST同步請求
發送POST方法的請求,無論同步還是異步請求都是使用ASIFormDataRequest類,只不過它們稍微有些不同。本節我們只介紹同步請求下使用ASIFormDataRequest類來發送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(@”請求完成…”);
- 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。
如果我們想發送除了GET和POST以外的其它請求方法,可以使用[request setRequestMethod:@"PUT"]語句設置,其中PUT是請求方法。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。