iOS網路編程-ASIHTTPRequest架構同步請求

來源:互聯網
上載者:User

在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:dataoptions: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:dataoptions:NSJSONReadingAllowFragments error:nil];[self reloadView:resDict];}}

 

使用ASIFormDataRequest需要引入標頭檔ASIFormDataRequest.h。

如果我們想發送除了GET和POST以外的其它要求方法,可以使用[request setRequestMethod:@"PUT"]語句設定,其中PUT是要求方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.