我正在尝试通过 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发送身体数据,但它的使用并不多。
确定您的服务器期望什么,并且:
- 尝试开机自检到服务器
- 确保将序列化类型设置为 JSON
如果确实要使用 GET 和查询参数,更好的选择是将数组内容转换为服务器期望的任何字符串格式,并在字典中提供该格式作为coordinates
键的值。