【问题标题】:Order of Parameters in a POST in RestKitRestKit 中 POST 中的参数顺序
【发布时间】:2014-06-19 17:02:15
【问题描述】:

我已成功配置 RestKit,因此我可以向正在使用的设备发送 POST 消息。

我已经确认,当我使用 Chrome 的 Postman 时,消息的格式是正确的。

我需要发送......

id=87654321&content={"ts":1396215675,"payload":{"ssid_pass":"blah"}}&t=12345678

所以在 Chrome 的邮递员中,它是正确的。但是当我使用 RestKit postObject

[manager postObject:self path:@"/tom" parameters:@{@"id" : K_IDVALUE,   @"content": myPayload, @"t":K_TVALUE, }  success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    NSLog(@"Successful Post!");

设备看到的顺序是错误的。它看到了

content={"ts":1396215675,"payload":{"ssid_pass":"blah"}}&id=87654321&t=12345678

设备确实希望内容位于 POST 请求的 id 和 t 标签之间。有没有办法强制 RestKit 按原样获取参数?消息似乎是按字母顺序排列的(我假设这是在序列化时发生的)。

【问题讨论】:

  • 服务器不应该关心参数的顺序。如果是这样,您可能想要共享服务器代码,我们可以看看。
  • 它是一个嵌入式设备(本身不是 Web 服务器),在这种情况下,根据嵌入式程序员编写它的方式,排序确实很重要。

标签: ios post restkit


【解决方案1】:

有没有办法强制 RestKit 按原样获取参数?

你传递给 RestiKit 的内容:

@{@"id" : K_IDVALUE, … }

是一个NSDictionary,它没有元素排序的概念。

那么,您唯一的机会是 RestKit 正在使用您指定的映射来确定键的顺序。我现在无法检查 RestKit 来源来确认这个假设,但你可以尝试一下(或者简单地验证你的映射当前顺序是什么)。

【讨论】:

  • 感谢您的指点。我将研究如何阅读 RestKit 如何进行映射并回复给每个人。欣赏它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
相关资源
最近更新 更多