2013-12-12 62 views
0

我最近更新了RestKit从0.20.3到版本0.22。 我更新了日期格式化程序等,一切工作正常,除了两个网址。升级到0.22后RestKit问题

现在,我的两个POST请求未能找到响应描述符。 我有一个“没有响应描述符匹配加载的响应”错误,列出我的每个RKObjectManager上的响应描述符。并特别是以下行:

<RKResponseDescriptor: 0x1edf4f00 baseURL=https://mybaseurl/ pathPattern=transfer/execute statusCodes=200-299> failed to match: response path 'transfer/execute' did not match the path pattern 'transfer/execute'. 

有人可以指导我,我可以错过的移植指南? 如果我调试把断点放在它试图找到响应描述符的地方,然后我去了- (BOOL)gatherParameterValues:(NSArray**)pValues fromString:(NSString *)string,我得到了一个YES来执行传输/执行,所以我真的不知道它在哪里断了。

它也好像mappingsDictionary上RKMapperOperation是主要方法空...

编辑

// POST Requests 
#pragma mark [POST] transfer/execute 
    { 
     // execute transfer 
     NSString *pathPattern = @"transfer/execute"; 

     // route 
     [manager.router.routeSet 
     addRoute:[RKRoute routeWithClass:[Transfer class] 
           pathPattern:pathPattern 
            method:RKRequestMethodPOST]]; 

     // request 
     RKMapping *requestMapping = [self.mappingProvider transferMapping]; 
     RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor 
                requestDescriptorWithMapping:requestMapping 
                objectClass:[Transfer class] 
                rootKeyPath:nil 
                method:RKRequestMethodPOST]; 
     [manager addRequestDescriptor:requestDescriptor]; 

     // response 
     RKMapping *responseMapping = [self.mappingProvider transferResultMapping]; 
     RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor 
                responseDescriptorWithMapping:responseMapping 
                method:RKRequestMethodGET 
                pathPattern:pathPattern 
                keyPath:nil 
                statusCodes:statusCodesSuccess]; 
     [manager addResponseDescriptor:responseDescriptor]; 
    } 
+0

你可以显示你的响应描述符的代码。您是否更新了弃用的方法? – Wain

+0

是的,我没有关于弃用方法的警告我改变了代码使用值变压器。 – florian

回答

1

你的响应描述具有method:RKRequestMethodGET所以当你做一个POST请求将不予考虑。将其更改为RKRequestMethodPOSTRKRequestMethodAny

+0

哦,我的上帝......我永远不会复制和粘贴代码。它解释了我的其他奇怪行为。非常感谢。 – florian

+0

这是否意味着RestKit 0.20.3对响应描述符更宽容? – florian

+1

'responseDescriptorWithMapping:method:pathPattern:keyPath:statusCodes:'是一种非常新的方法,因此将响应描述符限制为特定的方法是一个相对较新的功能。不推荐使用的方法默认为“Any”。我认为,只要方法存在,过滤就完全实施了。 – Wain