RestKit:发送2 x嵌套数组作为GET参数,错误的序列化

时间:2014-02-23 13:18:43

标签: ios restkit

我正在尝试通过RestKit在GET请求中发送一个点数组:

{
 coordinates: [
  [50,60],
  [100,200],
  [300,400]
 ]
}

代码:

[restkitManager getObjectsAtPath:path parameters:coordinates success:... failure:...]

当我检查服务器的日志时,我看到此请求已发送到服务器:

http://<...>?coordinates[][]=50&coordinates[][]=60&coordinates[][]=100...

哪个不正确,我在服务器上遇到了损坏的数组。括号[0] .. [1] ..:

之间必须存在数字
http://<...>?coordinates[0][0]=50&coordinates[0][1]=60&coordinates[1][0]=100...

这是一个错误吗?如果是这样,有没有解决方法?我已经在考虑创建一个以数字作为键的字典。

SO,我的解决方案

我将根NSArray转换为NSDictionary,数字作为键。现在我可以通过使用RestKit的GET请求发送它。

1 个答案:

答案 0 :(得分:2)

我猜你真正想要的是POST到服务器。使用GET会将参数编码为URL作为查询参数。从技术上讲,你可以用GET发送身体数据,但它没有用得多。

确保服务器期望的是:

  1. 尝试POST到服务器
  2. 确保将序列化类型设置为JSON
  3. 如果您确实想使用GET和查询参数,最好的选择是将数组内容转换为服务器期望的任何字符串格式,并将其作为coordinates键的值提供在字典中。 / p>