如何在http get方法中传递NSArray,它是NSDictionary的一部分?

时间:2012-07-17 16:55:00

标签: http get nsarray

我想将数组传递给我的服务器。我使用了GET方法,所以我必须在url之后传递一个参数。它看起来像这样:

http://www.myserver.com/?name=username&pwd=password

但现在我有一个数组。它包括一个NSDictionary。如何将其附加到网址?

1 个答案:

答案 0 :(得分:0)

以下是我过去使用过的一条建议:

NSMutableString* get_string=[[NSMutableString alloc] init];

int i = 1;
NSEnumerator* arrayEnumerator = [myArray objectEnumerator];
NSDictionary* myDict;

while(myDict = [arrayEnumerator nextObject])
    {
    [get_string appendString:@"&e"];
    [get_string appendString:[NSString stringWithFormat:@"%d", myInt]];
    [get_string appendString:@"myFirstKey="];
    [get_string appendString:[myDict objectForKey:myFirstKey]];
    [get_string appendString:@"&e"];
    [get_string appendString:[NSString stringWithFormat:@"%d", myInt]];
    [get_string appendString:@"mySecondKey"];
    [get_string appendString:[myDict objectForKey:mySecondKey]];
    }

如果我做得对,输出应该是这样的:

&e1myFirstKey=5&e1mySecondKey=8&e2myFirstKey=4&e2mySecondKey=9

剥离第一个&,打一个URL和一个“?”在前面并将其发送到您的服务器。然后,您的服务器必须通过“isset”或类似测试来分开,以查看数字何时停止。

我假设您有任意数量的数组元素,但每个单独的字典都有已知的字段 - 换句话说,您传递的是一组用户词典,但每个字典都有一个“用户”字段,一个“密码”字段。如果不是这种情况,你仍然可以使用这种方法,但你必须在通信的两个方面做更多的工作。