2015-04-28 2 views
0

Я использую Restkit для GET успешно, и теперь я попытался использовать его для POST и получить ошибку. Вот код для моего RESTKit который я думаю, вполне стандартен:Restkit не удалось отправить объект

RKObjectMapping *mappingTransaction = [RKObjectMapping mappingForClass:[Transaction class]]; 
NSDictionary *mappingTransactionDict = @{ 
              @"final_price" : @"finalPrice", 
              @"discount" : @"discount", 
              @"customer_fk" : @"customerID", 
              @"typeofpayment_fk" : @"typeOfPaymentID", 
              @"shop_fk" : @"shopID", 
              @"systemuser_fk" : @"systemUserID", 
              @"company_fk" : @"companyID", 
              @"created_at" : @"creationDate", 
              @"updated_at" : @"updateDate" 
              }; 
[mappingTransaction addAttributeMappingsFromDictionary:mappingTransactionDict]; 


RKResponseDescriptor *transactionDescriptor = 
[RKResponseDescriptor responseDescriptorWithMapping:mappingTransaction 
              method:RKRequestMethodPOST 
             pathPattern:@"/revenue/add/transaction" 
              keyPath:nil 
             statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 
[[RKObjectManager sharedManager] addResponseDescriptor:transactionDescriptor]; 

[[RKObjectManager sharedManager] postObject:(Transaction *)transactionRecord 
             path:@"/revenue/add/transaction" 
             parameters:nil 
              success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){ 
               //self.typeOfPaymentArray = mappingResult.array; 
              } 
              failure:^(RKObjectRequestOperation *operation, NSError *error){ 
               NSLog(@"Transaction insert failed': %@", error); 
              }]; 

Тогда есть ошибка «TokenMismatchException»: enter image description here

Я гугл его, но, кажется, все темы, которые говорят о лексемы CSRF от форма, которая в моем случае является сторонним IOS-приложением. Мой RESTFul API управляется Laravel 5. Любая идея будет оценена. Спасибо за внимание.

+1

У вас есть дескриптор запроса ? Что ожидает сервер и что он получает? – Wain

ответ

1

В вашем случае, вы хотите отобразить объект (Transaction) в запросе (не в ответе), поэтому вместо того, чтобы использовать responseDescriptorWithMapping вы должны использовать этот метод:

+ (instancetype)requestDescriptorWithMapping:(RKMapping *)mapping objectClass:(Class)objectClass rootKeyPath:(NSString *)rootKeyPath method:(RKRequestMethod)method 
+0

Нужен ли мне запрос? – emersonku

+0

Да, если вы отправляете объекты через POST, вы должны. Рекомендация: чтобы повторить повторное сопоставление, я рекомендую вам использовать утилиту inverseMapping: requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping: [mappingTransaction inverseMapping] objectClass: [Класс транзакции] rootKeyPath: метод nil: RKRequestMethodPOST]; –

+0

Спасибо, просто попробовал, но все равно получаю ту же ошибку .. – emersonku

Смежные вопросы