我正在尝试使用ios7上的afnetworking 2.0通过邮寄发送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中。为什么是这样?我的请求是做错了什么,还是服务器端上有问题?
预先感谢!
您的afnetworking代码看起来不错,如果您想要的服务器可以在响应中解析JSON。
我不是PHP专家,但是根据此答案,"如果请求主体不采用标准的UrlenCoded表格,则$_POST
不会被填充。"
因此,要么按照该答案的解析JSON中的说明,要么将requestSerializer
更改为AFHTTPRequestSerializer
的实例,该实例使用标准URL编码,而不是AFJSONRequestSerializer
。