2012-05-02 5 views
0

私はRestkit 0.10.0を使用しています。オブジェクトマッピングを使用してhttp投稿を行う方法を理解できません。これは私がこれまで持っているものです。PHPスクリプトのhttp投稿にRestkit 0.10.0のloadObjectsAtResourcePathを使用するには?

baseUrl = [[NSURL alloc] initWithString:@"http://www.whatever.com"]; 
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:baseUrl]; 
objectManager.acceptMIMEType = RKMIMETypeJSON; 
objectManager.serializationMIMEType = RKMIMETypeJSON; 

// mapping 
RKObjectMapping * userMapping = [RKObjectMapping mappingForClass:[User class]]; 
[userMapping mapKeyPath:@"id" toAttribute:@"id"]; 
[userMapping mapKeyPath:@"g" toAttribute:@"genre"]; 
[[objectManager mappingProvider] addObjectMapping: userMapping]; 
[[RKObjectManager sharedManager].mappingProvider setMapping:userMapping forKeyPath:@"response"]; 

// post request 
NSArray *objects = [NSArray arrayWithObjects:@"Montreal", @"Canada", @"", @"", @"", @"1", @"0", @"2", @"0", nil]; 
NSArray *keys = [NSArray arrayWithObjects:@"c", @"co", @"lat", @"lng", @"rad", @"s", @"o", @"ageG", @"w_ageG", nil]; 
NSDictionary *queryParameters = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 
NSString *getResourcePath = RKPathAppendQueryParams(@"people.php", queryParameters); 

// send request and wait for answer, delegate self will map objects 
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/people.php" delegate:self]; 

私は例えばPHPファイル内

$city = $_POST['c']; 

で、この記事を行うと、何も起こりません。何か案は?ありがとう!

+1

私はRestKitを使用してPOSTを試行するのにまったく固執しています。私が指摘できるのは、 'loadObjectsAtResourcePath'を使うべきではなく、代わりに' postObject:usingBlock: 'または' postObject:delegate: 'メソッドを使うことです。 – srik

+0

です。しかし、私はオブジェクトを投稿したくないです、私はちょうど私のオブジェクトを構築する応答を取得するためのパラメータを投稿したいです。なぜこれはとても複雑ですか? –

+0

OK。私はGET要求のために(幾分)動作するオブジェクトマッピングを持っています。 RestKitが提供しているエラー/出力は何ですか?また、期待されるjsonデータのサンプルも投稿できますか? – srik

答えて

3
RKURL *rkUrl = [RKURL URLWithBaseURL:baseUrl resourcePath:postString]; 
RKObjectLoader* loader = [[RKObjectLoader alloc] initWithURL:rkUrl mappingProvider:[RKObjectManager sharedManager].mappingProvider]; 
loader.method = RKRequestMethodPOST; 
loader.delegate = self; 

loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[MyObject class]]; 
[loader send]; 
関連する問題