Ios 返回响应时,Restkit与模式不匹配

Ios 返回响应时,Restkit与模式不匹配,ios,restkit-0.20,Ios,Restkit 0.20,我已经看到了不少这种性质的帖子,其中拖尾“/”(或缺少)会导致模式匹配失败 然而,我的问题是,没有一种模式可以与之相匹配。 我的错误如下所示: [[RKObjectManager sharedManager] postObject:user path:/auth/identity/callback" parameters:nil

我已经看到了不少这种性质的帖子,其中拖尾“/”(或缺少)会导致模式匹配失败

然而,我的问题是,没有一种模式可以与之相匹配。 我的错误如下所示:

[[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];
“没有响应描述符与加载的响应匹配。”UserInfo=0xcb8a660{NSErrorFailingURLStringKey=, NSLocalizedFailureReason=从URL“”加载了200响应, 未能匹配所有(3)个响应描述符: http://domain.herokuapp.com pathPattern=(空) 状态代码=200-299> 匹配失败:响应路径“/auth/identity/callback”与路径模式“(null)”不匹配

“与路径模式(null)不匹配”是我假设的问题

设置objectmanager和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];
我的描述符设置如下:

[[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
和后续的matches~方法。当发出请求时,它们都返回正确的描述符,但是当请求需要映射时,它就不起作用了

我从服务器得到了一个200 OK,我看到了请求和响应主体,它们看起来都是正确的


希望有人能帮我找出可能明显缺失的部分:)

这与路径模式无关。这是方法

您正在使用:

[[RKObjectManager sharedManager] postObject:user ...
但您有一个响应描述符:

method:RKRequestMethodGET

i、 e.一个用于POST,一个用于GET

这与路径模式无关。这是方法

您正在使用:

[[RKObjectManager sharedManager] postObject:user ...
但您有一个响应描述符:

method:RKRequestMethodGET

i、 e.一个用于POST,一个用于GET

您设置了什么基本URL?当您逐步了解时,哪一部分不起作用?我在问题中添加了objectmanager和httpclient的设置。我认为这没什么奇怪的。在RestKit尝试将生成的JSON映射到UserEntity之前,一切都正常。似乎无法获得ResponsedScript或与模式匹配。错误:“未能匹配:响应路径“/auth/identity/callback”与路径模式“(null)”不匹配,NSLocalizedDescription=没有响应描述符与加载的响应匹配”您设置了什么基本URL?当您逐步进行时,哪个部分不起作用?我在问题中添加了objectmanager和httpclient的设置。我认为这没什么了不起的。在RestKit尝试将生成的JSON映射到UserEntity之前,一切都正常。在那里,似乎无法获得与模式匹配的responseDescriptor。错误:未能匹配:响应路径“/auth/identity/callback”与路径模式“(null)”不匹配,NSLocalizedDescription=没有响应描述符与加载的响应匹配"你能详细说明一下吗?我的理解是,我设置了一个RKRequestDescriptor,当我使用此对象进行Post请求时使用它,当我希望从后端获取此类对象时使用RKResponseDescriptor。我正在与新的0.20版本的Restkit进行严重的斗争。将
方法:RKRequestMethodGET
更改为
方法:RKRequestMethodPOST
。这对我很有帮助。我甚至没有想过。你能详细说明一下吗?我的理解是,我设置了一个RKRequestDescriptor,当我使用此对象执行Post请求时使用它,当我希望从后端获取此类对象时,设置了一个RKResponseDescriptor。我正在认真地与新的0.20版本的Rest进行斗争kit.Change
method:RKRequestMethodGET
改为
method:RKRequestMethodPOST
。这对我很有帮助。我甚至没有想过。