0

我有一个 iOS 应用程序将 RestKit 0.20-rc1 用于 RESTful 服务。我正在尝试执行一个 GET ,借此我提供多个具有相同名称的查询参数来检索一组相同类型的对象。例如,我的 URL 如下所示:

http://mysite.com/rest/myobjects?objID=123&objID=234&objID=345

我的网络服务能够接受这样的查询并返回适当的对象。我在客户端上的 RestKit 代码如下所示:

NSDictionary *params = ...
RKObjectManager *objMgr = [RKObjectManager sharedManager];
[objMgr getObjectsAtPath:@"/rest/myobjects" parameters:params success:nil failure:nil];

我的问题是参数必须指定为一个NSDictionary,并且我有多个同名的参数。我尝试将 中的值设置为NSDictionary包含NSArray所有参数值的值,但这不起作用。

如何使用此方法在 RestKit 中指定多个具有相同名称的查询参数?这只是在 RestKit 中不支持吗?

4

2 回答 2

0

听起来你拥有的 RestKit 代码是不可能的。您可以:

  1. 更改代码以允许 NSArrays。RestKit 在https://github.com/RestKit是开源的
  2. 在 RestKit google group 上询问,看看其他人是如何解决这个问题的。https://groups.google.com/forum/?fromgroups#!forum/restkit
  3. 向 RestKit 提交补丁并等待支持您要求的版本。
于 2013-03-06T10:03:17.520 回答
0

您可以将带有参数的查询放在 getObjectAtPath 中。意思是使用如下参数创建一个字符串:

NSString *queryPath = @"getNames?names=bob&names=joe&names=joey";

然后执行此操作(注意parameters这里的对象是nil):

[[RKObjectManager sharedManager] getObjectsAtPath:queryPath
                                           parameters:nil
                                              success:nil failure:nil];

如果您对编码有疑问,请执行以下操作: queryPath = [queryPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

于 2014-08-04T09:23:01.287 回答