当前位置: 首页 > 知识库问答 >
问题:

AFNetworking2.0+iOS7:JSON将数据发送到$http_raw_post_data,而不是$_POST

伏业
2023-03-14
_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个答案

邹弘
2023-03-14

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

我不是PHP专家,但是根据这个答案,“如果请求主体不是标准的urlencoded格式,则不会填充$_post。”

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

 类似资料:
  • 问题内容: 尝试发送json。这是我的功能: 但是,每当我检查Chrome时,它总是将其作为查询参数发送: 如何获取以JSON格式发送的信息? 问题答案: 用 样品: 注意并非所有浏览器(http://caniuse.com/#feat=json)都支持JSON.stringify ,特别是IE7及更低版本的浏览器。 如果您也需要支持此浏览器,则可以使用以下Javascript库:https :

  • 想送Json这是我的功能: 但每当我检查Chrome时,它总是将其作为查询参数发送: 我如何让它作为JSON发送?

  • 问题内容: 如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析? 问题答案: 我在这里获得了很多信息,所以我想发布我发现的解决方案。 问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。 环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3

  • 我想做的是将一个Map添加到一个ArrayList中,然后添加到一个JsonArray中。我打算做的是直接将映射添加到json数组中。

  • 我发了这样的帖子: 我可以检索控制器中的数据,如下所示: 我确信这很简单,但我无法从我的StackOverflow和Google搜索中提炼出答案。 任何帮助都将不胜感激!:)

  • 问题内容: 我有一些旧代码通过jQuery的post方法发出AJAX POST请求,看起来像这样: 只是具有一些基本字符串属性的javascript对象。 我正在移动我们的内容以使用Angular,并且我想用$ http.post代替此调用。我提出以下内容: 当我这样做时,我从服务器收到500错误响应。使用Firebug,我发现这发送了如下请求体: 成功的jQuery 发送如下内容: 我要命中的端