Post Json Restkit无法为HTTP方法'POST'找到类型对象的可路由路径

时间:2012-10-29 19:33:46

标签: xcode json post restkit

我想将一个简单的Json发送到我的服务器并使用我的iPad应用程序获取Json响应..我使用Restkit来完成所有工作,但我对Json的POST有问题。 这是我想要的简单Json请求:

{"id_partita":"2"}

响应将是这样的:

[{"id":34,"id_dispositivo":"123","id_partita":2,"allenatore":0,"giocatore1":"AAA","giocatore2":"BBB",...}]

这是我在Xcode中的代码:

-(void) post
{
    RKURL *baseURL = [RKURL URLWithBaseURLString:@"mysite"];
    RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL];

    // Setup object mappings
    RKObjectMapping *formazioneMapping = [RKObjectMapping mappingForClass:[Formazione class]];

    [formazioneMapping mapKeyPath:@"id_formazione"
                                toAttribute:@"id_formazione"];
    [formazioneMapping mapKeyPath:@"id_dispositivo"
                                toAttribute:@"id_dispositivo"];
    [formazioneMapping mapKeyPath:@"id_partita"
                                toAttribute:@"id_partita"];
    [formazioneMapping mapKeyPath:@"formazione"
                                toAttribute:@"formazione"];
    [formazioneMapping mapKeyPath:@"giocatore1"
                                toAttribute:@"giocatore1"];
    [formazioneMapping mapKeyPath:@"giocatore2"
                                toAttribute:@"giocatore2"];
;

    // Register our mappings with the provider
    [objectManager.mappingProvider setMapping:formazioneMapping forKeyPath:@""];

    [objectManager.router routeClass:[Formazione class]
                      toResourcePath:@"/formazione/index.php"
                           forMethod:RKRequestMethodPOST];

    // Set serialization MIME type.
    [RKObjectManager sharedManager].serializationMIMEType = RKMIMETypeFormURLEncoded;

    // Configure a serialization mapping for our Formazione class. We want to send id_partita
    RKObjectMapping *formazionePOSTSerializationMapping = [RKObjectMapping
                                                      mappingForClass:[Formazione class]];
    [formazionePOSTSerializationMapping mapAttributes:@"id_partita", nil];

    // Now register the mapping with the provider
    [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:formazionePOSTSerializationMapping forClass: [Formazione class]];

    FormazionePOST *formazionePOST = [[FormazionePOST alloc] init];
    formazionePOST.id_partita = @"2";
    [[RKObjectManager sharedManager] postObject:formazionePOST delegate:self];

}

但是当我尝试执行它时,我遇到了这个错误: '无法为HTTP方法'POST'找到'FormazionePOST'类型对象的可路由路径。

我不明白我的错误是什么,我找不到一个简单的POST和GET的例子。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

在您的路由器初始化中,您是否引用了Formazione类,但是您尝试发布FormazionePost类?

答案 1 :(得分:0)

我使用AfNetworking而不是RestKit解决了我的问题。 在他们的文档中有很多关于JSON管理的例子。