#json #restkit #restkit-0.20
#json #restkit #restkit-0.20
Вопрос:
Я пытаюсь выполнить POST
следующий JSON, используя [RKObjectManager sharedManager] postObject
метод:
{
"SerialNumber":"123XYZ"
}
Но мой веб-сервис получает:
{
"docs/:docId/serials":{"SerialNumber":"123XYZ"}
}
Где "docs/:docId/serials"
находится path
параметр, который я передаю в [RKObjectManager sharedManager] postObject
метод, указывающий путь, необходимый для моего метода веб-службы.
Кто-нибудь знает, почему эти дополнительные данные пути включены в публикуемое содержимое тела?
Сопоставление из моего класса на основе NSObject, похоже, работает нормально, правильный серийный номер передается в JSON. Я настроил RKObjectManager на использование MIME-типа JSON для запросов, используя следующий код, было бы ничего не поделать, не так ли?
objectManager.requestSerializationMIMEType = RKMIMETypeJSON;
Любые подсказки будут высоко оценены, и я с радостью опубликую больше кода, если это необходимо.
Заранее спасибо.
Ответ №1:
Ах, естественно, через 5 минут после публикации этого я выяснил относительно очевидную причину этой проблемы.
При настройке my RKRequestDescriptor
для этой операции я передавал путь к своему методу веб-службы в rootKeyPath
параметре, думая, что RestKit это нужно, чтобы действовать как ключ, чтобы найти этот дескриптор при postObject
последующем вызове метода.
Однако, когда я удалил путь к веб-службе из rootKeyPath
параметра, он также исчез из POST
тела.
RKRequestDescriptor *addSerialRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:addSerialRequestMapping objectClass:[Serial class] rootKeyPath:nil method:RKRequestMethodPOST];
Теперь я понимаю, что получал параметр rootKeyPath в RKRequestDescriptor requestDescriptorWithMapping:
методе, смешанный с параметром pathPattern в RKResponseDescriptor responseDescriptorWithMapping:
методе, который (как я понимаю, RestKit) должен содержать путь к методу веб-службы, переданному в него.
Надеюсь, однажды это может помочь кому-то еще, и приношу извинения за то, что потратил время всех остальных!