2012-02-14 88 views
3

我有兩個關於ASIHTTPRequest傳過來ASIHTTPRequest數組 - POST

1題)我可以通過一個POST發送陣列到Web服務?

like;

NSArray *arr = [[NSArray alloc]init]; 
NSURL *url = [NSURL URLWithString:@"http://t2.com/p.php"]; 
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setPostValue:arr forKey:@"peoplearray"]; 
    [request setDidFinishSelector:@selector(done:)];  
    [request setDelegate:self]; 
    [request startAsynchronous]; 

如果你看到,我正在傳遞數組;

[request setPostValue:arr forKey:@"peoplearray"];

這是正確的嗎?如果不是,你能建議一個更好的工作方法嗎?

回答

3

這可能不會按預期工作。您將不得不將數組編碼爲JSON或其他格式。我更喜歡JSON,因爲有很多服務器端庫可以使用它。下面這段代碼需要這個JSON framework

[request setPostValue:[arr JSONRepresentation] forKey:@"people"]; 

的iOS 5自帶的內置JSON類。結帳這個article在iOS版5.使用JSON工作

+0

是否適用於iOS4的和上面的代碼工作? – sharon 2012-02-15 00:40:36

+0

是的,如果你包含鏈接的[JSON框架](https://github.com/stig/json-framework/)。 – Anurag 2012-02-15 00:41:59

1

試試這個 它爲我

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:ListPlacesURL]; 
for (int i =0; i < [placeTagID count]; i++) { 
     [request setPostValue:[[data objectAtIndex:i] objectForKey:@"id"] forKey:[NSString stringWithFormat:@"ids[%i]",i]]; 
} 
[request startSynchronous];