AFNetworking 2.x JSON POST 数据在服务器上为空

Posted

技术标签:

【中文标题】AFNetworking 2.x JSON POST 数据在服务器上为空【英文标题】:AFNetworking 2.x JSON POST Data Empty on Server 【发布时间】:2015-04-01 20:00:00 【问题描述】:

我使用的是 AFNetworking 1.x,我正在尝试切换到 2.x。但是,以前工作正常的东西现在坏了。我对 AFHTTPRequestOperationManager 进行了子类化,这是我在该子类中的一个方法中的代码:

AFHTTPRequestOperation *operation = [self POST:@"api.php" parameters:self.requestPOST success:^(AFHTTPRequestOperation *operation, id responseObject) 
    //success code here
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    //failure code here
];

在我的子类的 init 方法中,我设置了 baseURL 和以下内容:

self.requestSerializer = [AFJSONRequestSerializer serializer];
self.responseSerializer = [AFJSONResponseSerializer serializer];

当它运行时,它确实成功到达服务器,并且服务器发送响应。但是,服务器显示 $_POST、$HTTP_RAW_POST_DATA 和 php://input 都是空的。我在发送之前检查了 NSURLRequest 正文数据,并正确填充了 JSON 数据。

知道为什么 POST 数据在到达服务器时显示为空吗?

【问题讨论】:

【参考方案1】:

我不知道,但我可以为您提供我使用的代码

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager 管理器];

manager.responseSerializer =  [AFHTTPResponseSerializer serializer];

//    manager.responseSerializer.acceptableContentTypes =  [NSSet setWithObject:@"text/html"];
[manager POST:urlStr parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject)
 
     NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
    success(dict);
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    failure(error);
];

试试这个代码。如果问题没有解决,请告诉我..!

【讨论】:

以上是关于AFNetworking 2.x JSON POST 数据在服务器上为空的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 2.x 带有 xml 正文的 POST 请求

AFNetworking 2.0 JSON 解析

如何使用 AFNetworking 进行 json 解析

AFNetworking + JSON + 进度下载

JSON + AFNetworking [关闭]

Objective C - 使用 AFNetworking 2.x 库将参数传递给 webservice (cakephp)