RestKit 中 POST 中的参数顺序

Posted

技术标签:

【中文标题】RestKit 中 POST 中的参数顺序【英文标题】:Order of Parameters in a POST in RestKit 【发布时间】: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 服务器),在这种情况下,根据嵌入式程序员编写它的方式,排序确实很重要。 【参考方案1】:

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

你传递给 RestiKit 的内容:

@@"id" : K_IDVALUE, … 

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

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

【讨论】:

感谢您的指点。我将研究如何阅读 RestKit 如何进行映射并回复给每个人。欣赏它。

以上是关于RestKit 中 POST 中的参数顺序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中使用 RestKit 来处理发送 JSON 而没有 rootkey 的 RESTful 服务器?

如何访问 RESTful POST 方法中的参数

使用 RestKit 在 post 请求中寻求帮助

RestKit postObject 方法中的 post 对象与它返回的 RKMappingResult 有啥关系?

Swift RestKit Post 不包括帖子数据

POST 中的 Restkit url 映射