通过ASIHTTPRequest传递数组 - POST

3

我有两个关于ASIHTTPRequest的问题:

1.) 我能否通过POST方式将数组发送到Web服务?

比如:

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"]; 这样做正确吗?如果不是,您能提供更好的工作方法吗?
2个回答

3

那可能不会按预期工作。您需要将数组编码为JSON或其他格式。我更喜欢JSON,因为有许多服务器端库可以使用它。下面的代码片段需要这个JSON框架

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

iOS 5内置了JSON类。查看这篇文章,了解在iOS 5中如何使用JSON。


是的,如果您包含了链接的JSON框架 - Anurag

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];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接