使用AFNetworking发布,参数未发送?

时间:2011-12-22 01:43:49

标签: objective-c ios 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中得到回复时,我看到的只有:

成功: 欢迎!
你已经岁了。

我做错了什么? :(

2 个答案:

答案 0 :(得分:2)

我敢打赌,你试图简化你的问题,你的真实代码看起来像这样:

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

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

如果你在字典中为这样的键指定了一个nil值(可能不是故意的话),你的服务器只能读取该值之前的参数 - 在我的例子中只有id。因此,请检查params词典中的nil值。

答案 1 :(得分:0)

部分问题似乎是你真的应该使用这些键的实际值(或对象)?

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

这并不能解释为什么你在PHP端看不到fname变量的原因(我希望它也是fname,因为那是你设置的字符串在您当前的NSDictionary对象中),但这可能会帮助您更接近终点线。