我正在尝试在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中。为什么是这样?我的请求有问题,还是服务器端出现问题的可能性更大?
提前致谢!
答案 0 :(得分:1)
如果您希望服务器在响应中解析JSON,那么您的AFNetworking代码看起来很好。
我不是PHP专家,但根据this answer,如果请求正文不是标准的urlencoded格式,则不会填充“$_POST
。”
因此,请按照该答案中的说明解析JSON,或将requestSerializer
更改为AFHTTPRequestSerializer
的实例,该实例使用标准网址编码,而不是AFJSONRequestSerializer
。