AFNetworking — метод POST с параметром JSON: var = {JSON}

Я использую веб-сервис, который принимает такой метод POST

КЛЮЧ д ; ЗНАЧЕНИЕ {ЗАПРОС JSON}

например (логин):

d={ "action": [ "login" ], "request_data": { "login": { "user": "user", "password": "password" } } }

Если я использую AFHTTPClient, сервер не находит никаких параметров «d». Я пытался создать словари со всеми параметрами, сериализовать через NSJSONSERIALIZE, а затем обернуть все в NSMutabliDictionary *parmas с ключом-значением @"d", параметры для передачи в [httpClient postPath[....]], но безуспешно . Как я могу сделать?


person FabioM    schedule 23.03.2013    source источник


Ответы (1)


Он ищет строку JSON. У меня возникли проблемы с пониманием последних нескольких предложений в вашем вопросе (вы не очень четко описываете шаги), но в основном:

//Create your params
NSDictionary *parametersDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                                                    yourData, @"action",
                                                                    someMoreData, @"request_data", nil];

NSString *parametersJSONString = [parametersDictionary JSONString];

NSDictionary *parametersToSend = [NSDictionary dictionaryWithObject:parametersJSONString forKey:@"d"];

И тебе должно быть хорошо идти. Обратите внимание, что для JSONString требуется JSONKit. Кроме того, отладьте/зарегистрируйте parametersToSend перед отправкой, чтобы убедиться, что вы получили правильные данные и что проблема не в другом месте.

person Jai Govindani    schedule 23.03.2013
comment
нет, я всегда получаю отсутствующие параметры с сервера, но если я создаю NSURLRequest с тем же словарем, он работает. Что-то не так с AFHTTPClient и методом postPath. Поэтому я создаю NSURLRequest и выделяю для него AFHTTPRequestOperation. - person FabioM; 26.03.2013
comment
Вы строите объект NSURLRequest или объект NSMutableURLRequest? - person Jai Govindani; 26.03.2013