RestKit:发送 2 x 嵌套数组作为 GET 参数,序列化不正确



我正在尝试通过 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...

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

所以,我的解决方案

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

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

确定您的服务器期望什么,并且:

  1. 尝试开机自检到服务器
  2. 确保将序列化类型设置为 JSON

如果确实要使用 GET 和查询参数,更好的选择是将数组内容转换为服务器期望的任何字符串格式,并在字典中提供该格式作为coordinates键的值。

最新更新