Я видел довольно много сообщений такого рода, где завершающий «/» (или его отсутствие) приводит к сбою сопоставления с образцом.
Моя проблема, однако, заключается в том, что нет шаблона для сопоставления. Моя ошибка выглядит так:
«Нет дескрипторов ответов, соответствующих загруженному ответу». UserInfo=0xcb8a660 {NSErrorFailingURLStringKey=http://domain.herokuapp.com/auth/identity/callback, NSLocalizedFailureReason=Ответ 200 был загружен с URL-адреса 'http://domain.herokuapp.com/auth/identity/callback', которому не удалось сопоставить все (3) дескриптора ответа: http://domain.herokuapp.com pathPattern=(null) statusCodes=200-299> не удалось сопоставить: путь ответа ' /auth/identity/callback' не соответствует шаблону пути '(null)'.
Я предполагаю, что проблема не соответствует шаблону пути «(null)».
Настройка менеджера объектов и HttpClient:
+ (void) fireUpRestkit
{
RKLogConfigureByName("RestKit/Network", RKLogLevelTrace);
//base URL @"http://domain.herokuapp.com"
NSURL *baseURL = [[SCURLManager sharedInstance] baseURL];
AFHTTPClient * client = [AFHTTPClient clientWithBaseURL:baseURL];
[client setDefaultHeader:@"Accept" value:RKMIMETypeJSON];
RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
NSAssert(objectManager, @"objectManager did not instantiate correctly");
}
Мой запрос выглядит так:
[[RKObjectManager sharedManager] postObject:user
path:/auth/identity/callback"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
Мои дескрипторы настроены следующим образом:
RKObjectManager *objectManager = [RKObjectManager sharedManager];
RKObjectMapping *userMapping = [RKObjectMapping mappingForClass:[SCUserEntity class]];
[userMapping addAttributeMappingsFromDictionary:[SCUserEntity keyMapping]];
RKRequestDescriptor * requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping.inverseMapping
objectClass:[SCUserEntity class]
rootKeyPath:nil
method:RKRequestMethodPOST];
RKResponseDescriptor * responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:userMapping
method:RKRequestMethodGET
pathPattern:nil
keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
[objectManager addRequestDescriptor:requestDescriptor];
Я не могу найти причину того, что шаблон, который я даю при выполнении postRequest, кажется, не существует, когда запрос возвращается. Я прошел через методы buildResponseMappingsDictionary
и последующих соответствий~. Когда запрос сделан, все они возвращают правильные дескрипторы, но когда запрос требует сопоставления, он не работает.
Я получаю 200 OK от сервера, я вижу тело запроса и ответа, и они кажутся правильными.
Надеюсь, кто-то может помочь мне найти, вероятно, очевидную недостающую часть :)