【问题标题】:Node.js bodyparser cannot ready AFNetworking POST arrayNode.js bodyparser 无法准备好 AFNetworking POST 数组
【发布时间】:2014-11-28 10:26:42
【问题描述】:

我正在尝试将包含数组的 JSON 消息发布到我的服务器。但是,服务器无法识别数组中的元素。在检查了问题后,我发现了我认为的问题。

AFNetworking 代码:

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:kServiceBaseUrl]];
manager.responseSerializer = [AFJSONResponseSerializer serializer];

[manager PUT:@"/api/createRubaway"
   parameters:myDictionary
      success:^(NSURLSessionDataTask *task, NSDictionary *responseObject)
     {/* stuff */}
      failure:^(NSURLSessionDataTask *task, NSError *error)
     {/* stuff */}
 ];

LLDB 打印出“myDictionary”:

{
    description = description;
    title = title;
    transitions =     (
                {
            idx = 0;
            resource =             {
                data = testdata;
                name = transition;
                type = image;
            };
            threshold = "0.75";
            type = rubaway;
        },
                {
            idx = 1;
            resource =             {
                data = testdata;
                name = transition;
                type = image;
            };
            threshold = "0.75";
            type = rubaway;
        }
    );
}

AFNetworking 序列化请求后。如果我从 NSMutableRequest 中打印出 HTTPBody,这就是它正在发送的内容(这是正在发送到我的服务器的内容):

description=description&title=title&transitions[][idx]=0&
transitions[][resource][data]=testdata&
transitions[][resource][name]=transition&
transitions[][resource][type]=image&
transitions[][threshold]=0.75&
transitions[][type]=rubaway&transitions[][idx]=1&
transitions[][resource][data]=testdata&
transitions[][resource][name]=transition&
transitions[][resource][type]=image&transitions[][threshold]=0.75&
transitions[][type]=rubaway

上述格式是否正确。作为我的服务器(Node.js - BodyParser),我相信期待它采用这种格式https://stackoverflow.com/a/18402556/623750

有没有办法改变 JSON 序列化器的格式?或者有没有办法将 BodyParser 配置为接受上述格式?

谢谢, 瑞恩

【问题讨论】:

  • 一个问题,在nodejs代码中;你在文件中添加了什么 require('') ?我面临同样的问题,req.body 未被识别为数组。

标签: objective-c json node.js http afnetworking-2


【解决方案1】:

您只需将 requestSerializer 设置为 AFJSONRequestSerializer,即可解决问题。

 [manager setRequestSerializer:[AFJSONRequestSerializer serializer]];
 [manager setResponseSerializer:[AFJSONResponseSerializer serializer]];

【讨论】:

  • 啊。我忘了设置请求序列化程序。谢谢,效果很好!
  • req.body 等于 afnetworking 响应对象。如果你想要一个数组,那么:req.body = ['test','test2'];
猜你喜欢
  • 2015-11-05
  • 2020-04-10
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多