Если у вас все еще возникают проблемы с этим, я предлагаю использовать ASIHTTPRequest , что делает проблему тривиальной.
Для вашего конкретного примера views.get у вас есть параобязательные аргументы, которые вам нужно отправить: хеш, имя домена, временная метка домена, одноразовый номер и имя представления.Затем у вас есть несколько других необязательных параметров.
Я предполагаю, что вы используете сервисный модуль, однако если вы используете версию 3.x, вы можете использовать DIOS (drupal-ios-sdk), я слышал многохорошие вещи об этом.Однако, если вы используете 2.x или просто хотите сделать это самостоятельно, вот рабочий пример:
NSURL *url = [NSURL URLWithString:endpoint]; //endpoint:domain.com/services/json
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"view.get" forKey:@"method"];
[request setPostValue:[hash JSONString] forKey:@"hash"];
[request setPostValue:[domain JSONString] forKey:@"domain_name"];
[request setPostValue:timestamp forKey:@"domain_time_stamp"];
[request setPostValue:[nonce JSONString] forKey:@"nonce"];
[request setPostValue:[viewName JSONString] forKey:@"view_name"];
[request startSynchronous];
NSDictionary *deserializedData =
[[[[request responseData] objectFromJSONData] JSONString]
objectFromJSONString];
NSArray *resultList = [deserializedData objectForKey:@"data"];
Как видите, только типы данных, отличные от int, за исключением имени метода, должны быть в кодировке JSON.Я не знаю, является ли это лучшей практикой, но до сих пор это работало для меня.(: Как примечание, я использую JSONKit , потому что он очень прост, всего два файла, и, по словам основного автора, превосходит все остальные по эффективности ...
Если вам нужны какие-либо подробности о том, как выполнять хеширование, пожалуйста, дайте мне знать. Создавать это было очень сложно, но я думаю, что я нашел хорошие, эффективные способы сделать это, я думаю.