Проводка с помощью AFNetworking, параметры не отправляются?

Вот мой код Objective-C:

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"fname", @"fname",
                            @"age", @"age",
                            nil];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"testpost.php" parameters:params];

Вот мой код на PHP:

Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.

Однако, когда я получаю ответ обратно в Obj-C, все, что я вижу, это:

успех: Добро пожаловать!
Вам исполнилось лет.

Что я делаю не так? :(


person Vu Tran    schedule 22.12.2011    source источник
comment
Пример кода доходит только до создания объекта NSURLRequest и не показывает код для создания и запуска операции (например, с использованием AFHTTPClient -HTTPRequestOperationWithRequest:success:failure и AFHTTPClient -enqueueHTTPRequestOperation:. Не могли бы вы добавить это к исходному вопросу?   -  person mattt    schedule 25.12.2011


Ответы (2)


Могу поспорить, что вы пытались упростить свой вопрос, и ваш реальный код выглядит примерно так:

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                           @"id", @"id",
                           nil, @"bla",
                           @"fname", @"fname",
                           @"age", @"age",
                           nil];

NSMutableURLRequest *request = [httpClient requestWithMethod:@"POST" path:@"testpost.php" parameters:params];

Если вы присвоили ключу, подобному этому, в своем словаре нулевое значение (вероятно, непреднамеренно), ваш сервер сможет прочитать только параметры до этого значения - в моем примере только идентификатор. Поэтому проверьте наличие нулевых значений в словаре параметров.

person borisdiakur    schedule 09.01.2012

Часть проблемы, по-видимому, заключается в том, что вы действительно должны использовать фактические значения (или объекты) для этих ключей?

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:
                            yourNameObjectAsNSString, @"fname",
                            yourAgeObjectAsNSNumber, @"age",
                            nil];

Это не объясняет, почему вы ничего не видите для переменной fname на стороне PHP (я ожидаю, что это будет также fname, так как это строка, которую вы установили в своем текущем объекте NSDictionary), но это может помочь вы приближаетесь к финишу.

person Michael Dautermann    schedule 22.12.2011