RestKit - 错误域代码1001

 1hhhhhhhhhhh0_196_217 发布于 2022-12-26 19:49

好的,所以我几乎回顾了这个网站上的每一个其他问题都无济于事.

这是我从REST服务返回的JSON:

{
 "errors" :     {};
 "result" :     {
    "messagebody" : "Hello!";
    "timestamp" : "2014-08-21T04:12:28.4689099+00:00";
 };
 "success" :    {};
}

我试图通过RestKit v0.20.3提取结果对象

这是我的代码块,它被配置/执行:

- (void) configureRestKit
{

NSURL *cminstance = [NSURL URLWithString:@"http://"];
AFHTTPClient *cmclient = [[AFHTTPClient alloc] initWithBaseURL:cminstance];

RKObjectManager *objmgr = [[RKObjectManager alloc] initWithHTTPClient:cmclient];

RKObjectMapping *messageMap = [RKObjectMapping mappingForClass:[Message class]];
[messageMap addAttributeMappingsFromDictionary:@{ @"messagebody" : @"messagebody", @"timestamp": @"timestamp"}];
messageMap.forceCollectionMapping = YES;
RKResponseDescriptor *descriptor =
[RKResponseDescriptor
 responseDescriptorWithMapping:messageMap
 method:RKRequestMethodGET
 pathPattern:@"/v1/app/e51cb2dd24af47a49232b942210e758d/text?f=test"
 keyPath:@"result"
 statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objmgr addResponseDescriptor:descriptor];
}

- (IBAction)helloButtonClicked:(id)sender {

[[RKObjectManager sharedManager].HTTPClient setDefaultHeader:@"X-App-ApiKey" value:@"2c130c75dc9f4c2c8ef7c8753e8b7c56"];
NSLog(@"ResponseDescriptors %@", [[RKObjectManager sharedManager] responseDescriptors]);
[[RKObjectManager sharedManager] getObjectsAtPath:@"/v1/app/e51cb2dd24af47a49232b942210e758d/text?f=test" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

    _Response.text = [mappingResult.dictionary objectForKey:@"messagebody"];

} failure:^(RKObjectRequestOperation *operation, NSError *error)
 {
     _Response.text = @"Something went wrong.";
 }];
}

这是跟踪中的错误:

2014-08-21 00:12:30.653 The-App [13924:3707] E restkit.network:RKObjectRequestOperation.m:208 GET'http:/// v1/app/e51cb2dd24af47a49232b942210e758d/text?f = test'(200 OK/0个对象)[request = 2.7297s mapping = 0.0000s total = 2.7365s]:error = Error Domain = org.restkit.RestKit.ErrorDomain Code = 1001"没有响应描述符匹配加载的响应." UserInfo = 0xb164380 {NSErrorFailingURLStringKey = http:/// v1/app/e51cb2dd24af47a49232b942210e758d/text?f = test,NSLocalizedFailureReason =从网址加载200响应'http:/// v1/app/e51cb2dd24af47a49232b942210e758d/text?f = test ',它无法匹配所有(0)响应描述符:,NSLocalizedDescription =没有响应描述符匹配加载的响应.,keyPath = null,NSErrorFailingURLKey = http:/// v1/app/e51cb2dd24af47a49232b942210e758d/text?f = test,NSUnderlyingError = 0xb1641c0"在搜索的关键路径中找不到可映射的对象表示."} response.body = {"success":{},"errors":{},"result":{"messagebody":"Hello!","时间戳 ":" 2014-08-21T04:12:28.4689099 + 00:00" }}

这里有关于如何排除故障的任何想法?我一直在敲打这个问题几个小时,谷歌并不是我的朋友.

编辑:响应描述符

2014-08-22 10:41:21.580 Apprenda-CloudMine-App[10987:60b] ResponseDescriptors (
" timestamp>\",\n    \" messagebody>\"\n)>>"

)

谢谢!-克里斯

1 个回答
  • 该错误表示您的请求与响应描述符之间的路径不匹配.它很微妙,(0) response descriptors在错误消息中也向我表明该路径没有响应描述符.有关RestKit路径不匹配的错误消息的详细信息,请参阅此 GitHub问题.

    为什么你的路径不匹配?毕竟,请求中的路径与响应描述符中的路径完全相同.您的问题似乎可能是响应描述符路径中指定的GET参数.您需要从响应描述符路径中删除get参数,因为它在技术上不是路径的一部分.

    它应该是以下.

    [RKResponseDescriptor
     responseDescriptorWithMapping:messageMap
     method:RKRequestMethodGET
     pathPattern:@"/v1/app/e51cb2dd24af47a49232b942210e758d/text"
     keyPath:@"result"
     statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
    

    感谢Flaviu Simihaian实现这一目标.

    2022-12-26 19:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有