首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RestKit映射到Wordpress服务器

用RestKit映射到Wordpress服务器
EN

Stack Overflow用户
提问于 2014-03-31 19:29:13
回答 1查看 112关注 0票数 0

我试图向本地Wordpress服务器发送一个JSON,我的映射如下所示:

代码语言:javascript
复制
[RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/html"];

RKObjectMapping *orderEntryMapping = [RKObjectMapping requestMapping];

[orderEntryMapping addAttributeMappingsFromDictionary:@{
                                                        @"title": @"title"
                                                        }];

RKRequestDescriptor *requestDescriptorOrderEntry = [RKRequestDescriptor  requestDescriptorWithMapping:orderEntryMapping objectClass:[OrderSend class]   rootKeyPath:@"posts" method:RKRequestMethodPOST];
[objectManager addRequestDescriptor:requestDescriptorOrderEntry];

OrderSend类如下所示:

代码语言:javascript
复制
#import <Foundation/Foundation.h>

@interface OrderSend : NSObject

@property (nonatomic) NSString *title;

@end

这是发送请求的方法:

代码语言:javascript
复制
-(void) submitOrder:(OrderSend *) order completionHandler:(ResultObjectHandler) completionBlock
{

RKObjectManager *objectManager = [RKObjectManager sharedManager];

NSDictionary *parameters = @{
               @"json" : @"posts.create_post"
               };


[objectManager postObject:order path:@"" parameters:parameters success:^(RKObjectRequestOperation *operation, RKMappingResult *result)
 {
     NSLog(@"We object mapped the response with the following result: %@", result);
     completionBlock(result);
 }
                  failure:^(RKObjectRequestOperation *operation, NSError *error)
 {
     [self handleFailure:operation withError:error];
 }];    
 }

-(void) cancel{

[[RKObjectManager sharedManager].operationQueue cancelAllOperations];
}

-(void) handleFailure:(RKObjectRequestOperation *)operation withError:(NSError*)error {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                message:[error localizedDescription]
                                               delegate:nil
                                      cancelButtonTitle:@"OK"
                                      otherButtonTitles:nil];
[alert show];
NSLog(@"Hit error: %@", error);
}

我正在为Wordpress使用JSON,但我得到了以下错误:

代码语言:javascript
复制
{NSLocalizedDescription=No mappable object representations were found at the key paths     searched., NSLocalizedFailureReason=The mapping operation was unable to find any nested   object representations at the key paths searched: categories, posts
The representation inputted to the mapper was found to contain nested object representations at the following key paths: error, status
This likely indicates that you have misconfigured the key paths for your mappings.,   keyPath=null, DetailedErrors=(
)}

有人能帮我吗?,谢谢

解决方案是创建一个响应描述符,如下所示:

代码语言:javascript
复制
RKResponseDescriptor *responseDescriptorOrderEntry = [RKResponseDescriptor     responseDescriptorWithMapping:orderEntryMapping method:RKRequestMethodAny pathPattern:nil     keyPath:@"" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
 [objectManager addResponseDescriptor:responseDescriptorOrderEntry];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 22:55:34

您正在定义请求描述符,但没有定义响应描述符。因此,RestKit不知道如何处理响应。

您需要创建带有关联映射的响应描述符,以便RestKit知道如何应用响应。默认情况下,RestKit将尝试将响应数据应用于源对象(order),但它需要知道如何做到这一点.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22770477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档