AFNetworking 2.0 + iOS7:JSON POST数据转到$ HTTP_RAW_POST_DATA,而不是$ _POST

时间:2014-02-08 01:27:41

标签: json post ios7 afnetworking

我正在尝试在iOS7上使用AFNetworking 2.0通过POST将JSON编码的数组发送到Web服务器。

_manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:baseURL]];
_manager.requestSerializer = [AFJSONRequestSerializer serializer];

[_manager POST:@"getlistings" parameters:@{@"listings":item_ids} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"%@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"%@",error);
}];

item_ids是一个传入的数组,它基本上是@ [1234,1235],只是几个数字。 收到此请求的Web服务没有为$ _POST设置任何内容,但我发送的JSON确实显示在$ HTTP_RAW_POST_DATA中。为什么是这样?我的请求有问题,还是服务器端出现问题的可能性更大?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您希望服务器在响应中解析JSON,那么您的AFNetworking代码看起来很好。

我不是PHP专家,但根据this answer,如果请求正文不是标准的urlencoded格式,则不会填充“$_POST。”

因此,请按照该答案中的说明解析JSON,或将requestSerializer更改为AFHTTPRequestSerializer的实例,该实例使用标准网址编码,而不是AFJSONRequestSerializer