2013-03-04 4 views
0

У меня есть приложение iOS, использующее RestKit 0.20-rc1 для служб RESTful. Я пытаюсь выполнить GET, когда я предоставляю несколько параметров запроса с тем же именем, чтобы получить набор объектов того же типа. Например, мой URL будет выглядеть следующим образом:RestKit 0.20 - Несколько параметров запроса с тем же именем?

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?

ответ

0

Похоже, что это не будет возможно с кодом RestKit, который у вас есть. Вы можете:

  1. Измените код, чтобы разрешить NSArrays. RestKit является открытым исходным кодом на https://github.com/RestKit
  2. Попросите группу RestKit google просмотреть, как другие работали над этим. https://groups.google.com/forum/?fromgroups#!forum/restkit
  3. Отправить патч RestKit и дождаться выпуска, который поддерживает то, о чем вы просите.
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];

Смежные вопросы