2012-12-13 15 views
7

Tôi đang cố gắng sử dụng RestKit để gọi điểm cuối yêu cầu xác thực cơ bản.Làm cách nào để đặt xác thực cơ bản bằng RestKit 0.20.0?

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]); 
}]; 

Trả lời

26

Sử dụng objectmanager này sẽ là một cái gì đó như:

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

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

Sau đó, sau khi cài đặt yêu cầu đúng/trả lời, bạn có thể sử dụng objectmanager để làm một get/post/etc:

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

Tuyệt vời, hoạt động hấp dẫn. –

+1

ok @BrettRyan, nhưng bạn không sử dụng RKObjectManager, vậy bạn đã làm như thế nào? – jturolla

+0

Nhận xét giống tôi. ObjectManager được sử dụng như thế nào trong cuộc gọi? – nimbusgb

Các vấn đề liên quan