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.Changemethod:RKRequestMethodGET
改为method:RKRequestMethodPOST
。这对我很有帮助。我甚至没有想过。