2012-12-13 8 views
7

Ich versuche mit RestKit einen Endpunkt aufzurufen, der eine Standardauthentifizierung erfordert.Wie stelle ich die Standardauthentifizierung mit RestKit 0.20.0 ein?

RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[JSNCategory class]]; 
[mapping addAttributeMappingsFromDictionary:@{ 
    @"id": @"catId", 
    @"name": @"name" 
}]; 

NSIndexSet *statusCodes = RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful); 
RKResponseDescriptor *responseDescriptor 
= [RKResponseDescriptor responseDescriptorWithMapping:mapping 
              pathPattern:@"/api/v1/categories" 
               keyPath:nil 
              statusCodes:statusCodes]; 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL 
         URLWithString:@"https://rest.example.com"]]; 

RKObjectRequestOperation *operation 
    = [[RKObjectRequestOperation alloc] initWithRequest:request 
            responseDescriptors:@[responseDescriptor]]; 

[operation setCompletionBlockWithSuccess: 
^(RKObjectRequestOperation *operation, RKMappingResult *result) { 
    JSNCategory *cat = [result firstObject]; 
    NSLog(@"Mapped the category: %@", cat); 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    NSLog(@"Failed with error: %@", [error localizedDescription]); 
}]; 

Antwort

26

Object Mit dieser wäre so etwas wie:

NSURL* url = [[NSURL alloc]initWithString:@"http://rest.url.com"]; 
RKObjectManager* objectManager = [RKObjectManager managerWithBaseURL:url]; 

[objectManager.HTTPClient setAuthorizationHeaderWithUsername:@"username" password:@"password"]; 

Dann, nach der korrekten Request/Response-Einstellung können Sie die Objektmanager verwenden, um einen get zu tun/Post/etc:

[objectManager getObjectsAtPath:endpoint parameters:parameters success: 
    ^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
     // do something 
    } 
    failure:^(RKObjectRequestOperation *operation, NSError *error) { 
     // do something 
    } 
]; 
+0

Ausgezeichnet, funktioniert ein Charme. –

+1

ok @BrettRyan, aber Sie verwenden nicht RKObjectManager, also wie haben Sie es gemacht? – jturolla

+0

Gleicher Kommentar von mir. Wie wird der ObjektManager im Aufruf verwendet? – nimbusgb

Verwandte Themen