程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> iOS網絡編程-ASIHTTPRequest框架同步請求

iOS網絡編程-ASIHTTPRequest框架同步請求

編輯:C++入門知識

在ASIHTTPRequest框架中與HTTP請求相關的類有:ASIHTTPRequest和ASIFormDataRequest,其中最常用的是ASIHTTPRequest,ASIFormDataRequest是ASIHTTPRequest的子類,ASIFormDataRequest可以發送類似與HTML表單數據,也可以上傳數據,默認采用POST請求方法。也可以其它的HTTP請求方法。它們都可以進行異步或同步請求。下面我們從最簡單的GET同步請求介紹。

1、實現GET同步請求

實現GET同步請求使用最基本請求類ASIHTTPRequest就可以了。我們還是使用MyNotes應用為例,只考慮查詢功能實現,修改主視圖控制器MasterViewController.m的startRequest方法如下:

[cpp]
-(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]; 
 

 

-(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方法如下:

[cpp]
-(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]; 
 

 

-(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是請求方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved