Эй, мне нужно сделать HTTP-запрос POST с массивом объектов NSDictionary.
Однако, когда я делаю это, на стороне сервера я замечаю, что объект NSDictionary не десериализуется в хеш. Это десериализовано в строку - это не то, что я хочу.
Вот как я отправляю параметр со стороны клиента (IPhone):
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
for (ABContact *c in contactsWithEmailsOrPhones){
NSString *phoneNumber = [[ABContactsHelper class] contactPhoneNumber:c];
NSString *email = [[c emailArray] objectAtIndex:0];
NSLog(@"looping: %@, %@", phoneNumber, email);
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
phoneNumber,
@"phone",
email,
@"email",
[c firstname],
@"firstname",
[c lastname],
@"lastname", nil];
[request addPostValue:dict forKey:@"contacts[]"];
}
[request setDelegate:self];
[request startAsynchronous];
Вот как это выглядит при десериализации на стороне сервера (rails):
Started POST "/app/find_friends" for 67.164.97.48 at Thu Sep 23 14:40:37 -0700 2010
Processing by app#find_friends as HTML
Parameters: {"contacts"=>["{\n email = \"xx\";\n firstname = xx;\n lastname = xx;\n phone = \"xx\";\n}", "{\n email = \"xx\";\n firstname = xx;\n lastname = xx;\n phone = \"xx\";\n}"]}
Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)
Я уверен, что это общая проблема, с которой сталкиваются люди. Так что определенно есть решение для этого.
Заранее спасибо за все комментарии / ответы.