【问题标题】:AFNetworking 2.0 + iOS7: JSON POST data going to $HTTP_RAW_POST_DATA, not $_POSTAFNetworking 2.0 + iOS7:JSON POST 数据发送到 $HTTP_RAW_POST_DATA,而不是 $_POST
【发布时间】:2014-03-05 15:07:09
【问题描述】:

我正在尝试在 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 中。为什么是这样?我的请求是否有问题,还是更有可能是服务器端出现问题?

提前致谢!

【问题讨论】:

    标签: json post ios7 afnetworking


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 2018-06-10
      • 2016-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      相关资源
      最近更新 更多