2013-12-11 60 views
2

我的實現沒有發送參數。這裏是RequestDescriptor:Restkit請求不發送參數

RKObjectMapping *userMapping = [RKObjectMapping requestMapping]; 
[userMapping addAttributeMappingsFromArray:@[@"nombres", @"telefono", @"direccion", @"email", @"identificacion", @"tipo_id", @"recibir_sms_ordenes", @"recibir_correos_ordenes"]]; 
RKRequestDescriptor *descriptor = [RKRequestDescriptor requestDescriptorWithMapping:userMapping objectClass:[RKUser class] rootKeyPath:@"me" method:RKRequestMethodAny]; 
[[RKObjectManager sharedManager] addRequestDescriptor:descriptor]; 

這裏是POST請求:

RKUser *user = [self currentUser].user;  // [self currentUser].user returns the current RKUser 
RKObjectManager *manager = [RKObjectManager sharedManager]; 
[manager postObject:user path:@"/api/me.json" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
    NSLog(@"%@ %@", operation, mappingResult); 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"%@ %@", error, operation); 
}]; 

在服務器中,我只收到一個空current_user參數。任何想法爲什麼?

PD。服務器期望下me關鍵

+0

你是什麼意思'參數'?服務器希望獲得什麼?您是否將請求序列化類型設置爲JSON? – Wain

+0

@那我該怎麼做?服務器期望在JSON中的對象也許這就是我所缺少的 – macool

回答

3

JSON有效載荷確保您已設置:

manager.requestSerializationMIMEType = RKMIMETypeJSON; 

由於默認是RKMIMETypeFormURLEncoded


根據您的意見和討論,映射沒有被使用,因爲用戶的類是錯誤的。這是因爲它是一個普通的NSManagedObject而不是一個RKUser實例。這意味着RestKit找不到合適的映射。造成這種情況的原因是您的核心數據模型中的User實體未設置自定義類。

+0

我已經這樣做了,但它一直不向服務器發送任何東西。我錯過了什麼?感謝您的回答,BTW – macool

+0

那麼,什麼是'RKUser'?什麼屬性?打開映射的跟蹤日誌記錄,看看它告訴你什麼。 – Wain

+0

'RKUser'具有以下屬性:'@ [@「nombres」,@「telefono」,@「direccion」,@「email」,@「identificacion」,@「tipo_id」,@「recibir_sms_ordenes」,@「recibir_correos_ordenes 「]'(同樣我添加了映射)。我已經設置了RKLogConfigureByName(「RestKit/ObjectMapping」,RKLogLevelTrace);'它沒有顯示映射。也許它沒有達到該請求映射 – macool