通过ASIHTTPRequest - POST传递一个数组

时间:2012-02-14 23:58:25

标签: iphone objective-c

我有2个关于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 个答案:

答案 0 :(得分:3)

这可能无法按预期工作。您必须将数组编码为JSON或其他格式。我更喜欢JSON,因为有很多服务器端库可以使用它。以下代码段需要JSON framework

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

iOS 5附带内置的JSON类。查看此article以便在iOS 5中使用JSON。

答案 1 :(得分: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];