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 服务器?